diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 20eb48926460..fa1e13144dae 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -4,8 +4,8 @@ contact_links:
- name: Have you read the docs?
url: https://argo-workflows.readthedocs.io/en/latest/
about: Much help can be found in the docs
- - name: Ask a question
- url: https://github.com/argoproj/argo-workflows/discussions/new
+ - name: Ask a question about Codefresh's Argo Worklfows
+ url: https://github.com/codefresh-io/argo-workflows/discussions/new
about: Ask a question or start a discussion about workflows
- name: Chat on Slack
url: https://argoproj.github.io/community/join-slack
diff --git a/.github/workflows/ci-build.yaml b/.github/workflows/ci-build.yaml
index 28857b7d35ee..902e5e048e62 100644
--- a/.github/workflows/ci-build.yaml
+++ b/.github/workflows/ci-build.yaml
@@ -7,7 +7,8 @@ on:
- "!release-2.8"
pull_request:
branches:
- - "main"
+ - "master"
+ - "release-*"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
@@ -109,7 +110,7 @@ jobs:
tests:
name: Unit Tests
- needs: [ changed-files ]
+ needs: [changed-files]
if: ${{ needs.changed-files.outputs.tests == 'true' }}
runs-on: ubuntu-24.04
timeout-minutes: 10
@@ -131,7 +132,7 @@ jobs:
tests-windows:
name: Windows Unit Tests
- needs: [ changed-files ]
+ needs: [changed-files]
if: ${{ needs.changed-files.outputs.tests == 'true' }}
runs-on: windows-2022
timeout-minutes: 20
@@ -186,7 +187,7 @@ jobs:
e2e-tests:
name: E2E Tests
- needs: [ changed-files, argo-images ]
+ needs: [changed-files, argo-images]
if: ${{ needs.changed-files.outputs.e2e-tests == 'true' }}
runs-on: ubuntu-24.04
# These tests usually finish in ~25m, but occasionally they take much longer due to resource
@@ -261,14 +262,14 @@ jobs:
if: ${{matrix.test == 'test-java-sdk'}}
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 # v4.0.0
with:
- java-version: '8'
+ java-version: "8"
distribution: adopt
cache: maven
- name: Install Python for the SDK
if: ${{matrix.test == 'test-python-sdk'}}
uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
with:
- python-version: '3.x'
+ python-version: "3.x"
cache: pip
- name: Install and start K3S
run: |
@@ -291,7 +292,7 @@ jobs:
- name: Download images
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
with:
- pattern: '*_image.tar'
+ pattern: "*_image.tar"
path: /tmp
- name: Load images
run: |
@@ -370,7 +371,7 @@ jobs:
# see https://github.com/orgs/community/discussions/9141#discussioncomment-2296809 and https://github.com/orgs/community/discussions/26822#discussioncomment-3305794
e2e-tests-composite-result:
name: E2E Tests - Composite result
- needs: [ e2e-tests ]
+ needs: [e2e-tests]
if: ${{ always() }}
runs-on: ubuntu-24.04
steps:
@@ -385,7 +386,7 @@ jobs:
codegen:
name: Codegen
- needs: [ changed-files ]
+ needs: [changed-files]
if: ${{ needs.changed-files.outputs.codegen == 'true' }}
runs-on: ubuntu-24.04
timeout-minutes: 20
@@ -422,7 +423,7 @@ jobs:
lint:
name: Lint
- needs: [ changed-files ]
+ needs: [changed-files]
if: ${{ needs.changed-files.outputs.lint == 'true' }}
runs-on: ubuntu-24.04
timeout-minutes: 15 # must be strictly greater than the timeout in .golangci.yml
@@ -444,7 +445,7 @@ jobs:
ui:
name: UI
- needs: [ changed-files ]
+ needs: [changed-files]
if: ${{ needs.changed-files.outputs.ui == 'true' }}
runs-on: ubuntu-24.04
timeout-minutes: 6
diff --git a/.github/workflows/default-branch-check.yaml b/.github/workflows/default-branch-check.yaml
new file mode 100644
index 000000000000..5f8fbc617bba
--- /dev/null
+++ b/.github/workflows/default-branch-check.yaml
@@ -0,0 +1,18 @@
+name: PR check
+
+on:
+ pull_request:
+ branches:
+ - "release-*"
+
+jobs:
+ test-default-branch:
+ name: base branch is a default branch
+ runs-on: ubuntu-latest
+ steps:
+ - name: fail if base branch is not default branch
+ if: ${{ github.event.pull_request.base.ref != github.event.repository.default_branch }}
+ uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
+ with:
+ script: |
+ core.setFailed("Base branch of the PR - ${{ github.event.pull_request.base.ref }} is not a default branch. Please reopen your PR to ${{ github.event.repository.default_branch }}")
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index da5e8fbb97c1..aef6802106e4 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -5,7 +5,8 @@ on:
tags:
- v*
branches:
- - main
+ - master
+ - release-*
- dev-*
concurrency:
@@ -20,14 +21,14 @@ permissions:
contents: read
jobs:
- build-linux:
+ build-linux-amd64:
name: Build & push linux
- if: github.repository == 'argoproj/argo-workflows'
+ if: github.repository == 'codefresh-io/argo-workflows'
runs-on: ubuntu-24.04
strategy:
matrix:
- platform: [ linux/amd64, linux/arm64 ]
- target: [ workflow-controller, argocli, argoexec ]
+ platform: [linux/amd64]
+ target: [workflow-controller, argocli, argoexec]
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
@@ -48,12 +49,6 @@ jobs:
restore-keys: |
${{ runner.os }}-${{ matrix.platform }}-${{ matrix.target }}-buildx-
- - name: Docker Login
- uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
- with:
- username: ${{ secrets.DOCKERIO_USERNAME }}
- password: ${{ secrets.DOCKERIO_PASSWORD }}
-
- name: Login to Quay
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
with:
@@ -94,15 +89,10 @@ jobs:
build-windows:
name: Build & push windows
- if: github.repository == 'argoproj/argo-workflows'
+ if: github.repository == 'codefresh-io/argo-workflows'
runs-on: windows-2022
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- - name: Docker Login
- uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
- with:
- username: ${{ secrets.DOCKERIO_USERNAME }}
- password: ${{ secrets.DOCKERIO_PASSWORD }}
- name: Login to Quay
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
@@ -118,23 +108,16 @@ jobs:
docker_org=$DOCKERIO_ORG
tag=$(basename $GITHUB_REF)
- if [ $tag = "main" ]; then
+ if [ $tag = "master" ]; then
tag="latest"
fi
targets="argoexec"
for target in $targets; do
image_name="${docker_org}/${target}:${tag}-windows"
- docker build \
- --build-arg GIT_COMMIT=$tag \
- --build-arg GIT_BRANCH=$branch \
- --build-arg GIT_TREE_STATE=$tree_state \
- --target $target \
- -t $image_name \
- -f Dockerfile.windows \
- .
-
- docker push $image_name
+ docker build --target $target -t $image_name -f Dockerfile.windows .
+ ## Codefresh - remove dockerhub
+ # docker push $image_name
docker tag $image_name quay.io/$image_name
docker push quay.io/$image_name
@@ -143,16 +126,11 @@ jobs:
push-images:
name: Push manifest with all images
- if: github.repository == 'argoproj/argo-workflows'
+ if: github.repository == 'codefresh-io/argo-workflows'
runs-on: ubuntu-24.04
- needs: [ build-linux, build-windows ]
+ needs: [build-linux-amd64, build-windows]
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- - name: Docker Login
- uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
- with:
- username: ${{ secrets.DOCKERIO_USERNAME }}
- password: ${{ secrets.DOCKERIO_PASSWORD }}
- name: Login to Quay
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
@@ -161,16 +139,9 @@ jobs:
username: ${{ secrets.QUAYIO_USERNAME }}
password: ${{ secrets.QUAYIO_PASSWORD }}
- - name: Install cosign
- uses: sigstore/cosign-installer@e1523de7571e31dbe865fd2e80c5c7c23ae71eb4 # v3.4.0
- with:
- cosign-release: 'v2.2.3'
-
- name: Push Multiarch Image
env:
DOCKERIO_ORG: ${{ secrets.DOCKERIO_ORG }}
- COSIGN_PRIVATE_KEY: ${{secrets.COSIGN_PRIVATE_KEY}}
- COSIGN_PASSWORD: ${{secrets.COSIGN_PASSWORD}}
run: |
: ${DOCKER_CONFIG:=~/.docker}
echo $(jq -c '. + { "experimental": "enabled" }' ${DOCKER_CONFIG}/config.json) > ${DOCKER_CONFIG}/config.json
@@ -178,7 +149,7 @@ jobs:
docker_org=$DOCKERIO_ORG
tag=$(basename $GITHUB_REF)
- if [ $tag = "main" ]; then
+ if [ $tag = "master" ]; then
tag="latest"
fi
@@ -187,36 +158,30 @@ jobs:
image_name="${docker_org}/${target}:${tag}"
if [ $target = "argoexec" ]; then
- docker manifest create $image_name ${image_name}-linux-arm64 ${image_name}-linux-amd64 ${image_name}-windows
+ ## Codefresh - remove dockerhub
+ # docker manifest create $image_name ${image_name}-linux-arm64 ${image_name}-linux-amd64 ${image_name}-windows
docker manifest create quay.io/$image_name quay.io/${image_name}-linux-arm64 quay.io/${image_name}-linux-amd64 quay.io/${image_name}-windows
else
- docker manifest create $image_name ${image_name}-linux-arm64 ${image_name}-linux-amd64
+ ## Codefresh - remove dockerhub
+ # docker manifest create $image_name ${image_name}-linux-arm64 ${image_name}-linux-amd64
docker manifest create quay.io/$image_name quay.io/${image_name}-linux-arm64 quay.io/${image_name}-linux-amd64
fi
- docker manifest push $image_name
+ ## Codefresh - remove dockerhub
+ # docker manifest push $image_name
docker manifest push quay.io/$image_name
-
- cosign sign -y --key env://COSIGN_PRIVATE_KEY quay.io/$image_name
-
done
test-images-linux-amd64:
name: Try pulling linux/amd64
- if: github.repository == 'argoproj/argo-workflows'
+ if: github.repository == 'codefresh-io/argo-workflows'
runs-on: ubuntu-24.04
- needs: [ push-images ]
+ needs: [push-images]
strategy:
matrix:
- platform: [ linux/amd64 ]
- target: [ workflow-controller, argocli, argoexec ]
+ platform: [linux/amd64]
+ target: [workflow-controller, argocli, argoexec]
steps:
- - name: Docker Login
- uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
- with:
- username: ${{ secrets.DOCKERIO_USERNAME }}
- password: ${{ secrets.DOCKERIO_PASSWORD }}
-
- name: Login to Quay
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
with:
@@ -231,7 +196,7 @@ jobs:
TARGET: ${{ matrix.target }}
run: |
tag=$(basename $GITHUB_REF)
- if [ $tag = "main" ]; then
+ if [ $tag = "master" ]; then
tag="latest"
fi
@@ -241,16 +206,10 @@ jobs:
test-images-windows:
name: Try pulling windows
- if: github.repository == 'argoproj/argo-workflows'
+ if: github.repository == 'codefresh-io/argo-workflows'
runs-on: windows-2022
- needs: [ push-images ]
+ needs: [push-images]
steps:
- - name: Docker Login
- uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
- with:
- username: ${{ secrets.DOCKERIO_USERNAME }}
- password: ${{ secrets.DOCKERIO_PASSWORD }}
-
- name: Login to Quay
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
with:
@@ -263,7 +222,7 @@ jobs:
run: |
docker_org=$DOCKERIO_ORG
tag=$(basename $GITHUB_REF)
- if [ $tag = "main" ]; then
+ if [ $tag = "master" ]; then
tag="latest"
fi
@@ -276,14 +235,12 @@ jobs:
publish-release:
permissions:
- contents: write # for softprops/action-gh-release to create GitHub release
+ contents: write # for softprops/action-gh-release to create GitHub release
runs-on: ubuntu-24.04
- if: github.repository == 'argoproj/argo-workflows'
- needs: [ push-images, test-images-linux-amd64, test-images-windows ]
+ if: github.repository == 'codefresh-io/argo-workflows'
+ needs: [push-images, test-images-linux-amd64, test-images-windows]
env:
NODE_OPTIONS: --max-old-space-size=4096
- COSIGN_PRIVATE_KEY: ${{secrets.COSIGN_PRIVATE_KEY}}
- COSIGN_PASSWORD: ${{secrets.COSIGN_PASSWORD}}
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1
@@ -297,44 +254,27 @@ jobs:
with:
path: ui/node_modules
key: ${{ runner.os }}-node-dep-v1-${{ hashFiles('**/yarn.lock') }}
- - name: Install cosign
- uses: sigstore/cosign-installer@e1523de7571e31dbe865fd2e80c5c7c23ae71eb4 # v3.4.0
+ - name: go build cache
+ uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3.3.3
with:
- cosign-release: 'v2.2.3'
+ path: /home/runner/.cache/go-build
+ key: GOCACHE-v2-${{ hashFiles('**/go.mod') }}
+ - name: go mod cache
+ uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3.3.3
+ with:
+ path: /home/runner/go/pkg/mod
+ key: GOMODCACHE-v2-${{ hashFiles('**/go.mod') }}
# https://stackoverflow.com/questions/58033366/how-to-get-current-branch-within-github-actions
- - run: |
- if [ ${GITHUB_REF##*/} = main ]; then
- echo "VERSION=latest" >> $GITHUB_ENV
- else
- echo "VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
- fi
- - run: go install sigs.k8s.io/bom/cmd/bom@v0.2.0
- - run: go install github.com/spdx/spdx-sbom-generator/cmd/generator@v0.0.13
- - run: mkdir -p dist
- - run: generator -o dist -p .
- - run: yarn --cwd ui install
- - run: generator -o dist -p ui
- - run: bom generate --image quay.io/argoproj/workflow-controller:$VERSION -o dist/workflow-controller.spdx
- - run: bom generate --image quay.io/argoproj/argocli:$VERSION -o dist/argocli.spdx
- - run: bom generate --image quay.io/argoproj/argoexec:$VERSION -o dist/argoexec.spdx
- # pack the boms into one file to make it easy to download
- - run: tar -zcf dist/sbom.tar.gz dist/*.spdx
- - run: make release-notes VERSION=$VERSION
+ - run: make release-notes VERSION=${GITHUB_REF##*/}
- run: cat release-notes
- - run: make manifests VERSION=$VERSION
+ - run: make manifests VERSION=${GITHUB_REF##*/}
- name: Print image tag (please check it is not `:latest`)
run: |
grep image: dist/manifests/install.yaml
- run: go mod download
- - run: make clis STATIC_FILES=true VERSION=$VERSION
+ - run: make clis STATIC_FILES=true VERSION=${GITHUB_REF##*/}
- name: Print version (please check it is not dirty)
run: dist/argo-linux-amd64 version
- - run: make checksums
- - name: Sign checksums and create public key for release assets
- run: |
- cosign sign-blob -y --key env://COSIGN_PRIVATE_KEY ./dist/argo-workflows-cli-checksums.txt > ./dist/argo-workflows-cli-checksums.sig
- # Retrieves the public key to release as an asset
- cosign public-key --key env://COSIGN_PRIVATE_KEY > ./dist/argo-workflows-cosign.pub
# https://github.com/softprops/action-gh-release
# This will publish the release and upload assets.
@@ -348,10 +288,8 @@ jobs:
body_path: release-notes
files: |
dist/argo-*.gz
- dist/argo-workflows-cli-checksums.txt
- dist/argo-workflows-cli-checksums.sig
+ dist/argo-*.gz.sha256
dist/manifests/*.yaml
- dist/argo-workflows-cosign.pub
dist/sbom.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/README.md b/README.md
index b7c26d87d2af..8a91373ac3bd 100644
--- a/README.md
+++ b/README.md
@@ -156,9 +156,9 @@ Participation in Argo Workflows is governed by the [CNCF Code of Conduct](https:
## Project Resources
-* [Argo Project GitHub organization](https://github.com/argoproj)
-* [Argo Website](https://argoproj.github.io/)
-* [Argo Slack](https://argoproj.github.io/community/join-slack)
+* Codefresh Argo GitHub: https://github.com/codefresh-io
+* Argo Website: https://argoproj.github.io/
+* Argo Slack: [click here to join](https://argoproj.github.io/community/join-slack)
## Security
diff --git a/api/jsonschema/schema.json b/api/jsonschema/schema.json
index e18ea4ee1285..8d3403bf644a 100644
--- a/api/jsonschema/schema.json
+++ b/api/jsonschema/schema.json
@@ -5852,6 +5852,13 @@
"namespace": {
"description": "Namespace is the namespace of the mutex, default: [namespace of workflow]",
"type": "string"
+ },
+ "selectors": {
+ "description": "Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to mutex key to make concurrency more customizable",
+ "items": {
+ "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.SyncSelector"
+ },
+ "type": "array"
}
},
"type": "object"
@@ -6801,6 +6808,13 @@
"namespace": {
"description": "Namespace is the namespace of the configmap, default: [namespace of workflow]",
"type": "string"
+ },
+ "selectors": {
+ "description": "Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to semaphore key to make concurrency more customizable",
+ "items": {
+ "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.SyncSelector"
+ },
+ "type": "array"
}
},
"type": "object"
@@ -6950,6 +6964,20 @@
},
"type": "object"
},
+ "io.argoproj.workflow.v1alpha1.SyncSelector": {
+ "description": "Synchronization selector",
+ "properties": {
+ "name": {
+ "description": "Name of the selector",
+ "type": "string"
+ },
+ "template": {
+ "description": "Template replaced with global variables",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"io.argoproj.workflow.v1alpha1.Synchronization": {
"description": "Synchronization holds synchronization lock configuration",
"properties": {
diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json
index bc16fe9238f4..6d73c0cf962c 100644
--- a/api/openapi-spec/swagger.json
+++ b/api/openapi-spec/swagger.json
@@ -9877,6 +9877,13 @@
"namespace": {
"description": "Namespace is the namespace of the mutex, default: [namespace of workflow]",
"type": "string"
+ },
+ "selectors": {
+ "description": "Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to mutex key to make concurrency more customizable",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.SyncSelector"
+ }
}
}
},
@@ -10826,6 +10833,13 @@
"namespace": {
"description": "Namespace is the namespace of the configmap, default: [namespace of workflow]",
"type": "string"
+ },
+ "selectors": {
+ "description": "Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to semaphore key to make concurrency more customizable",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.SyncSelector"
+ }
}
}
},
@@ -10974,6 +10988,20 @@
}
}
},
+ "io.argoproj.workflow.v1alpha1.SyncSelector": {
+ "description": "Synchronization selector",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the selector",
+ "type": "string"
+ },
+ "template": {
+ "description": "Template replaced with global variables",
+ "type": "string"
+ }
+ }
+ },
"io.argoproj.workflow.v1alpha1.Synchronization": {
"description": "Synchronization holds synchronization lock configuration",
"type": "object",
diff --git a/docs/executor_swagger.md b/docs/executor_swagger.md
index 622463a7300e..f2bc26e2c1b2 100644
--- a/docs/executor_swagger.md
+++ b/docs/executor_swagger.md
@@ -2163,6 +2163,7 @@ that the fieldset applies to.
|------|------|---------|:--------:| ------- |-------------|---------|
| name | string| `string` | | | name of the mutex | |
| namespace | string| `string` | | `"[namespace of workflow]"`| | |
+| selectors | [][SyncSelector](#sync-selector)| `[]*SyncSelector` | | | Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to mutex key to make concurrency more customizable | |
@@ -3552,6 +3553,7 @@ are set, the values in SecurityContext take precedence.
|------|------|---------|:--------:| ------- |-------------|---------|
| configMapKeyRef | [ConfigMapKeySelector](#config-map-key-selector)| `ConfigMapKeySelector` | | | | |
| namespace | string| `string` | | `"[namespace of workflow]"`| | |
+| selectors | [][SyncSelector](#sync-selector)| `[]*SyncSelector` | | | Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to semaphore key to make concurrency more customizable | |
@@ -3669,6 +3671,25 @@ otherwise).
+### SyncSelector
+
+
+> Synchronization selector
+
+
+
+
+
+
+**Properties**
+
+| Name | Type | Go type | Required | Default | Description | Example |
+|------|------|---------|:--------:| ------- |-------------|---------|
+| name | string| `string` | | | Name of the selector | |
+| template | string| `string` | | | Template replaced with global variables | |
+
+
+
### Synchronization
diff --git a/docs/fields.md b/docs/fields.md
index 19ef63bd5d76..c03835b72192 100644
--- a/docs/fields.md
+++ b/docs/fields.md
@@ -2481,6 +2481,7 @@ Mutex holds Mutex configuration
|:----------:|:----------:|---------------|
|`name`|`string`|name of the mutex|
|`namespace`|`string`|Namespace is the namespace of the mutex, default: [namespace of workflow]|
+|`selectors`|`Array<`[`SyncSelector`](#syncselector)`>`|Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to mutex key to make concurrency more customizable|
## SemaphoreRef
@@ -2491,6 +2492,7 @@ SemaphoreRef is a reference of Semaphore
|:----------:|:----------:|---------------|
|`configMapKeyRef`|[`ConfigMapKeySelector`](#configmapkeyselector)|ConfigMapKeyRef is configmap selector for Semaphore configuration|
|`namespace`|`string`|Namespace is the namespace of the configmap, default: [namespace of workflow]|
+|`selectors`|`Array<`[`SyncSelector`](#syncselector)`>`|Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to semaphore key to make concurrency more customizable|
## ArtifactLocation
@@ -3849,6 +3851,22 @@ MetricLabel is a single label for a prometheus metric
RetryNodeAntiAffinity is a placeholder for future expansion, only empty nodeAntiAffinity is allowed. In order to prevent running steps on the same host, it uses "kubernetes.io/hostname".
+## SyncSelector
+
+Synchronization selector
+
+
+Examples with this field (click to open)
+
+- [`input-artifact-git.yaml`](https://github.com/argoproj/argo-workflows/blob/main/examples/input-artifact-git.yaml)
+
+
+### Fields
+| Field Name | Field Type | Description |
+|:----------:|:----------:|---------------|
+|`name`|`string`|Name of the selector|
+|`template`|`string`|Template replaced with global variables|
+
## ContainerNode
_No description available_
diff --git a/examples/k8s-orchestration.yaml b/examples/k8s-orchestration.yaml
index 65a8973c33c7..df7ba47115bf 100644
--- a/examples/k8s-orchestration.yaml
+++ b/examples/k8s-orchestration.yaml
@@ -8,80 +8,82 @@ metadata:
spec:
entrypoint: k8s-orchestrate
templates:
- - name: k8s-orchestrate
- steps:
- # 1. Create a parallelized kubernetes job which calculates 10 random numbers and
- # waits for it to complete. Returns the job name and job uid as output parameters.
- - - name: random-number-job
- template: random-number-job
- # 2. Using the uid of the job, query all its associated pods and prints the
- # generated random numbers to stdout.
- - - name: print-generated-numbers
- template: print-generated-numbers
- arguments:
- parameters:
- - name: job-uid
- value: '{{steps.random-number-job.outputs.parameters.job-uid}}'
- # 3. Delete the job using the job name
- - - name: delete-job
- template: delete-job
- arguments:
- parameters:
- - name: job-name
- value: '{{steps.random-number-job.outputs.parameters.job-name}}'
+ - name: k8s-orchestrate
+ steps:
+ # 1. Create a parallelized kubernetes job which calculates 10 random numbers and
+ # waits for it to complete. Returns the job name and job uid as output parameters.
+ - - name: random-number-job
+ template: random-number-job
+ # 2. Using the uid of the job, query all its associated pods and prints the
+ # generated random numbers to stdout.
+ - - name: print-generated-numbers
+ template: print-generated-numbers
+ arguments:
+ parameters:
+ - name: job-uid
+ value: "{{steps.random-number-job.outputs.parameters.job-uid}}"
+ # 3. Delete the job using the job name
+ - - name: delete-job
+ template: delete-job
+ arguments:
+ parameters:
+ - name: job-name
+ value: "{{steps.random-number-job.outputs.parameters.job-name}}"
- - name: random-number-job
- resource:
- action: create
- successCondition: status.succeeded > 9
- failureCondition: status.failed > 0
- manifest: |
- apiVersion: batch/v1
- kind: Job
- metadata:
- generateName: rand-num-
- spec:
- completions: 10
- parallelism: 10
- template:
- metadata:
- name: rand
- spec:
- containers:
- - name: rand
- image: python:alpine3.6
- command: ["python", "-c", "import random; import time; print(random.randint(1, 1000)); time.sleep(10)"]
- restartPolicy: Never
- outputs:
- parameters:
- - name: job-name
- valueFrom:
- jsonPath: '{.metadata.name}'
- - name: job-uid
- valueFrom:
- jsonPath: '{.metadata.uid}'
+ - name: random-number-job
+ resource:
+ action: create
+ successCondition: status.succeeded > 9
+ failureCondition: status.failed > 0
+ manifest: |
+ apiVersion: batch/v1
+ kind: Job
+ metadata:
+ generateName: rand-num-
+ spec:
+ completions: 10
+ parallelism: 10
+ template:
+ metadata:
+ name: rand
+ spec:
+ containers:
+ - name: rand
+ image: python:alpine3.6
+ command: ["python", "-c", "import random; import time; print(random.randint(1, 1000)); time.sleep(10)"]
+ restartPolicy: Never
+ outputs:
+ parameters:
+ - name: job-name
+ valueFrom:
+ jsonPath: "{.metadata.name}"
+ - name: job-uid
+ valueFrom:
+ jsonPath: "{.metadata.uid}"
- - name: print-generated-numbers
- inputs:
- parameters:
- - name: job-uid
- container:
- image: argoproj/argoexec:latest
- command: [sh, -c]
- args: ["
- for i in `kubectl get pods -l controller-uid={{inputs.parameters.job-uid}} -o name`; do
- kubectl logs $i;
- done
- "]
+ - name: print-generated-numbers
+ inputs:
+ parameters:
+ - name: job-uid
+ container:
+ image: quay.io/codefresh/argoexec:latest
+ command: [sh, -c]
+ args: [
+ "
+ for i in `kubectl get pods -l controller-uid={{inputs.parameters.job-uid}} -o name`; do
+ kubectl logs $i;
+ done
+ ",
+ ]
- - name: delete-job
- inputs:
- parameters:
- - name: job-name
- resource:
- action: delete
- manifest: |
- apiVersion: batch/v1
- kind: Job
- metadata:
- name: {{inputs.parameters.job-name}}
+ - name: delete-job
+ inputs:
+ parameters:
+ - name: job-name
+ resource:
+ action: delete
+ manifest: |
+ apiVersion: batch/v1
+ kind: Job
+ metadata:
+ name: {{inputs.parameters.job-name}}
diff --git a/manifests/base/argo-server/argo-server-deployment.yaml b/manifests/base/argo-server/argo-server-deployment.yaml
index e3672fbe16a2..6f4dcdaabefd 100644
--- a/manifests/base/argo-server/argo-server-deployment.yaml
+++ b/manifests/base/argo-server/argo-server-deployment.yaml
@@ -14,7 +14,7 @@ spec:
serviceAccountName: argo-server
containers:
- name: argo-server
- image: quay.io/argoproj/argocli:latest
+ image: quay.io/codefresh/argocli:latest
securityContext:
readOnlyRootFilesystem: true
runAsNonRoot: true
@@ -22,7 +22,7 @@ spec:
capabilities:
drop:
- ALL
- args: [ server ]
+ args: [server]
env: []
ports:
- name: web
@@ -39,7 +39,7 @@ spec:
name: tmp
volumes:
- name: tmp
- emptyDir: { }
+ emptyDir: {}
securityContext:
runAsNonRoot: true
nodeSelector:
diff --git a/manifests/base/crds/full/argoproj.io_clusterworkflowtemplates.yaml b/manifests/base/crds/full/argoproj.io_clusterworkflowtemplates.yaml
index 0cc5f7ca2477..f94e33fee75d 100644
--- a/manifests/base/crds/full/argoproj.io_clusterworkflowtemplates.yaml
+++ b/manifests/base/crds/full/argoproj.io_clusterworkflowtemplates.yaml
@@ -2116,6 +2116,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -2124,6 +2133,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -2143,6 +2161,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -2162,6 +2189,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
@@ -10627,6 +10663,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -10635,6 +10680,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -10654,6 +10708,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -10673,6 +10736,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
@@ -19924,6 +19996,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -19932,6 +20013,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -19951,6 +20041,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -19970,6 +20069,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
diff --git a/manifests/base/crds/full/argoproj.io_cronworkflows.yaml b/manifests/base/crds/full/argoproj.io_cronworkflows.yaml
index 2f40c0771299..57487541cac0 100644
--- a/manifests/base/crds/full/argoproj.io_cronworkflows.yaml
+++ b/manifests/base/crds/full/argoproj.io_cronworkflows.yaml
@@ -2150,6 +2150,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -2158,6 +2167,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -2177,6 +2195,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -2196,6 +2223,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
@@ -10661,6 +10697,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -10669,6 +10714,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -10688,6 +10742,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -10707,6 +10770,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
@@ -19958,6 +20030,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -19966,6 +20047,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -19985,6 +20075,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -20004,6 +20103,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
diff --git a/manifests/base/crds/full/argoproj.io_workflows.yaml b/manifests/base/crds/full/argoproj.io_workflows.yaml
index da9968304348..897e44078f68 100644
--- a/manifests/base/crds/full/argoproj.io_workflows.yaml
+++ b/manifests/base/crds/full/argoproj.io_workflows.yaml
@@ -2130,6 +2130,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -2138,6 +2147,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -2157,6 +2175,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -2176,6 +2203,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
@@ -10641,6 +10677,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -10649,6 +10694,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -10668,6 +10722,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -10687,6 +10750,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
@@ -19938,6 +20010,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -19946,6 +20027,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -19965,6 +20055,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -19984,6 +20083,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
@@ -33318,6 +33426,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -33326,6 +33443,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -33345,6 +33471,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -33364,6 +33499,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
@@ -36244,6 +36388,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -36252,6 +36405,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -36271,6 +36433,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -36290,6 +36461,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
@@ -44755,6 +44935,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -44763,6 +44952,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -44782,6 +44980,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -44801,6 +45008,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
@@ -54052,6 +54268,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -54060,6 +54285,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -54079,6 +54313,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -54098,6 +54341,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
diff --git a/manifests/base/crds/full/argoproj.io_workflowtasksets.yaml b/manifests/base/crds/full/argoproj.io_workflowtasksets.yaml
index 1811733493d8..7bea90f68ad3 100644
--- a/manifests/base/crds/full/argoproj.io_workflowtasksets.yaml
+++ b/manifests/base/crds/full/argoproj.io_workflowtasksets.yaml
@@ -8489,6 +8489,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -8497,6 +8506,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -8516,6 +8534,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -8535,6 +8562,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
diff --git a/manifests/base/crds/full/argoproj.io_workflowtemplates.yaml b/manifests/base/crds/full/argoproj.io_workflowtemplates.yaml
index 330b98e7f927..0147e01dff5e 100644
--- a/manifests/base/crds/full/argoproj.io_workflowtemplates.yaml
+++ b/manifests/base/crds/full/argoproj.io_workflowtemplates.yaml
@@ -2115,6 +2115,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -2123,6 +2132,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -2142,6 +2160,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -2161,6 +2188,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
@@ -10626,6 +10662,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -10634,6 +10679,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -10653,6 +10707,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -10672,6 +10735,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
@@ -19923,6 +19995,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
mutexes:
items:
@@ -19931,6 +20012,15 @@ spec:
type: string
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
semaphore:
@@ -19950,6 +20040,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
semaphores:
items:
@@ -19969,6 +20068,15 @@ spec:
x-kubernetes-map-type: atomic
namespace:
type: string
+ selectors:
+ items:
+ properties:
+ name:
+ type: string
+ template:
+ type: string
+ type: object
+ type: array
type: object
type: array
type: object
diff --git a/manifests/base/workflow-controller/workflow-controller-deployment.yaml b/manifests/base/workflow-controller/workflow-controller-deployment.yaml
index dd3526a6661f..b9bf0b795d94 100644
--- a/manifests/base/workflow-controller/workflow-controller-deployment.yaml
+++ b/manifests/base/workflow-controller/workflow-controller-deployment.yaml
@@ -15,7 +15,7 @@ spec:
serviceAccountName: argo
containers:
- name: workflow-controller
- image: quay.io/argoproj/workflow-controller:latest
+ image: quay.io/codefresh/workflow-controller:latest
securityContext:
readOnlyRootFilesystem: true
runAsNonRoot: true
@@ -25,7 +25,11 @@ spec:
- ALL
command:
- workflow-controller
- args: [ ]
+ args:
+ - --configmap
+ - workflow-controller-configmap
+ - --executor-image
+ - quay.io/codefresh/argoexec:latest
env:
- name: LEADER_ELECTION_IDENTITY
valueFrom:
diff --git a/manifests/quick-start-minimal.yaml b/manifests/quick-start-minimal.yaml
index 78ad3e0e6f80..f0db4e18b262 100644
--- a/manifests/quick-start-minimal.yaml
+++ b/manifests/quick-start-minimal.yaml
@@ -3612,7 +3612,7 @@ spec:
- --auth-mode
- client
env: []
- image: quay.io/argoproj/argocli:latest
+ image: quay.io/codefresh/argocli:latest
name: argo-server
ports:
- containerPort: 2746
@@ -3658,7 +3658,11 @@ spec:
app: workflow-controller
spec:
containers:
- - args: []
+ - args:
+ - --configmap
+ - workflow-controller-configmap
+ - --executor-image
+ - quay.io/codefresh/argoexec:latest
command:
- workflow-controller
env:
@@ -3667,7 +3671,7 @@ spec:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- image: quay.io/argoproj/workflow-controller:latest
+ image: quay.io/codefresh/workflow-controller:latest
livenessProbe:
failureThreshold: 3
httpGet:
diff --git a/manifests/quick-start-mysql.yaml b/manifests/quick-start-mysql.yaml
index 9cb62fe1bd6a..4296be2f518b 100644
--- a/manifests/quick-start-mysql.yaml
+++ b/manifests/quick-start-mysql.yaml
@@ -3656,7 +3656,7 @@ spec:
- --auth-mode
- client
env: []
- image: quay.io/argoproj/argocli:latest
+ image: quay.io/codefresh/argocli:latest
name: argo-server
ports:
- containerPort: 2746
@@ -3702,7 +3702,11 @@ spec:
app: workflow-controller
spec:
containers:
- - args: []
+ - args:
+ - --configmap
+ - workflow-controller-configmap
+ - --executor-image
+ - quay.io/codefresh/argoexec:latest
command:
- workflow-controller
env:
@@ -3711,7 +3715,7 @@ spec:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- image: quay.io/argoproj/workflow-controller:latest
+ image: quay.io/codefresh/workflow-controller:latest
livenessProbe:
failureThreshold: 3
httpGet:
diff --git a/manifests/quick-start-postgres.yaml b/manifests/quick-start-postgres.yaml
index 7cb175c2cea6..0b5924468174 100644
--- a/manifests/quick-start-postgres.yaml
+++ b/manifests/quick-start-postgres.yaml
@@ -3656,7 +3656,7 @@ spec:
- --auth-mode
- client
env: []
- image: quay.io/argoproj/argocli:latest
+ image: quay.io/codefresh/argocli:latest
name: argo-server
ports:
- containerPort: 2746
@@ -3702,7 +3702,11 @@ spec:
app: workflow-controller
spec:
containers:
- - args: []
+ - args:
+ - --configmap
+ - workflow-controller-configmap
+ - --executor-image
+ - quay.io/codefresh/argoexec:latest
command:
- workflow-controller
env:
@@ -3711,7 +3715,7 @@ spec:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- image: quay.io/argoproj/workflow-controller:latest
+ image: quay.io/codefresh/workflow-controller:latest
livenessProbe:
failureThreshold: 3
httpGet:
diff --git a/pkg/apis/api-rules/violation_exceptions.list b/pkg/apis/api-rules/violation_exceptions.list
index dc3b89a0917c..3184c9d89b5c 100644
--- a/pkg/apis/api-rules/violation_exceptions.list
+++ b/pkg/apis/api-rules/violation_exceptions.list
@@ -16,6 +16,7 @@ API rule violation: list_type_missing,github.com/argoproj/argo-workflows/v3/pkg/
API rule violation: list_type_missing,github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1,LabelKeys,Items
API rule violation: list_type_missing,github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1,LabelValues,Items
API rule violation: list_type_missing,github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1,Metrics,Prometheus
+API rule violation: list_type_missing,github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1,Mutex,Selectors
API rule violation: list_type_missing,github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1,NodeStatus,Children
API rule violation: list_type_missing,github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1,NodeStatus,OutboundNodes
API rule violation: list_type_missing,github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1,OAuth2Auth,EndpointParams
@@ -25,6 +26,7 @@ API rule violation: list_type_missing,github.com/argoproj/argo-workflows/v3/pkg/
API rule violation: list_type_missing,github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1,Parameter,Enum
API rule violation: list_type_missing,github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1,Prometheus,Labels
API rule violation: list_type_missing,github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1,ResourceTemplate,Flags
+API rule violation: list_type_missing,github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1,SemaphoreRef,Selectors
API rule violation: list_type_missing,github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1,SemaphoreStatus,Holding
API rule violation: list_type_missing,github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1,SemaphoreStatus,Waiting
API rule violation: list_type_missing,github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1,SubmitOpts,Parameters
diff --git a/pkg/apis/workflow/v1alpha1/generated.pb.go b/pkg/apis/workflow/v1alpha1/generated.pb.go
index 90ddb8a58c04..8455b149ca01 100644
--- a/pkg/apis/workflow/v1alpha1/generated.pb.go
+++ b/pkg/apis/workflow/v1alpha1/generated.pb.go
@@ -3340,10 +3340,38 @@ func (m *SuspendTemplate) XXX_DiscardUnknown() {
var xxx_messageInfo_SuspendTemplate proto.InternalMessageInfo
+func (m *SyncSelector) Reset() { *m = SyncSelector{} }
+func (*SyncSelector) ProtoMessage() {}
+func (*SyncSelector) Descriptor() ([]byte, []int) {
+ return fileDescriptor_724696e352c3df5f, []int{118}
+}
+func (m *SyncSelector) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *SyncSelector) 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 *SyncSelector) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SyncSelector.Merge(m, src)
+}
+func (m *SyncSelector) XXX_Size() int {
+ return m.Size()
+}
+func (m *SyncSelector) XXX_DiscardUnknown() {
+ xxx_messageInfo_SyncSelector.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SyncSelector proto.InternalMessageInfo
+
func (m *Synchronization) Reset() { *m = Synchronization{} }
func (*Synchronization) ProtoMessage() {}
func (*Synchronization) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{118}
+ return fileDescriptor_724696e352c3df5f, []int{119}
}
func (m *Synchronization) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3371,7 +3399,7 @@ var xxx_messageInfo_Synchronization proto.InternalMessageInfo
func (m *SynchronizationStatus) Reset() { *m = SynchronizationStatus{} }
func (*SynchronizationStatus) ProtoMessage() {}
func (*SynchronizationStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{119}
+ return fileDescriptor_724696e352c3df5f, []int{120}
}
func (m *SynchronizationStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3399,7 +3427,7 @@ var xxx_messageInfo_SynchronizationStatus proto.InternalMessageInfo
func (m *TTLStrategy) Reset() { *m = TTLStrategy{} }
func (*TTLStrategy) ProtoMessage() {}
func (*TTLStrategy) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{120}
+ return fileDescriptor_724696e352c3df5f, []int{121}
}
func (m *TTLStrategy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3427,7 +3455,7 @@ var xxx_messageInfo_TTLStrategy proto.InternalMessageInfo
func (m *TarStrategy) Reset() { *m = TarStrategy{} }
func (*TarStrategy) ProtoMessage() {}
func (*TarStrategy) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{121}
+ return fileDescriptor_724696e352c3df5f, []int{122}
}
func (m *TarStrategy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3455,7 +3483,7 @@ var xxx_messageInfo_TarStrategy proto.InternalMessageInfo
func (m *Template) Reset() { *m = Template{} }
func (*Template) ProtoMessage() {}
func (*Template) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{122}
+ return fileDescriptor_724696e352c3df5f, []int{123}
}
func (m *Template) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3483,7 +3511,7 @@ var xxx_messageInfo_Template proto.InternalMessageInfo
func (m *TemplateRef) Reset() { *m = TemplateRef{} }
func (*TemplateRef) ProtoMessage() {}
func (*TemplateRef) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{123}
+ return fileDescriptor_724696e352c3df5f, []int{124}
}
func (m *TemplateRef) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3511,7 +3539,7 @@ var xxx_messageInfo_TemplateRef proto.InternalMessageInfo
func (m *TransformationStep) Reset() { *m = TransformationStep{} }
func (*TransformationStep) ProtoMessage() {}
func (*TransformationStep) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{124}
+ return fileDescriptor_724696e352c3df5f, []int{125}
}
func (m *TransformationStep) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3539,7 +3567,7 @@ var xxx_messageInfo_TransformationStep proto.InternalMessageInfo
func (m *UserContainer) Reset() { *m = UserContainer{} }
func (*UserContainer) ProtoMessage() {}
func (*UserContainer) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{125}
+ return fileDescriptor_724696e352c3df5f, []int{126}
}
func (m *UserContainer) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3567,7 +3595,7 @@ var xxx_messageInfo_UserContainer proto.InternalMessageInfo
func (m *ValueFrom) Reset() { *m = ValueFrom{} }
func (*ValueFrom) ProtoMessage() {}
func (*ValueFrom) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{126}
+ return fileDescriptor_724696e352c3df5f, []int{127}
}
func (m *ValueFrom) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3595,7 +3623,7 @@ var xxx_messageInfo_ValueFrom proto.InternalMessageInfo
func (m *Version) Reset() { *m = Version{} }
func (*Version) ProtoMessage() {}
func (*Version) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{127}
+ return fileDescriptor_724696e352c3df5f, []int{128}
}
func (m *Version) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3623,7 +3651,7 @@ var xxx_messageInfo_Version proto.InternalMessageInfo
func (m *VolumeClaimGC) Reset() { *m = VolumeClaimGC{} }
func (*VolumeClaimGC) ProtoMessage() {}
func (*VolumeClaimGC) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{128}
+ return fileDescriptor_724696e352c3df5f, []int{129}
}
func (m *VolumeClaimGC) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3651,7 +3679,7 @@ var xxx_messageInfo_VolumeClaimGC proto.InternalMessageInfo
func (m *Workflow) Reset() { *m = Workflow{} }
func (*Workflow) ProtoMessage() {}
func (*Workflow) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{129}
+ return fileDescriptor_724696e352c3df5f, []int{130}
}
func (m *Workflow) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3679,7 +3707,7 @@ var xxx_messageInfo_Workflow proto.InternalMessageInfo
func (m *WorkflowArtifactGCTask) Reset() { *m = WorkflowArtifactGCTask{} }
func (*WorkflowArtifactGCTask) ProtoMessage() {}
func (*WorkflowArtifactGCTask) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{130}
+ return fileDescriptor_724696e352c3df5f, []int{131}
}
func (m *WorkflowArtifactGCTask) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3707,7 +3735,7 @@ var xxx_messageInfo_WorkflowArtifactGCTask proto.InternalMessageInfo
func (m *WorkflowArtifactGCTaskList) Reset() { *m = WorkflowArtifactGCTaskList{} }
func (*WorkflowArtifactGCTaskList) ProtoMessage() {}
func (*WorkflowArtifactGCTaskList) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{131}
+ return fileDescriptor_724696e352c3df5f, []int{132}
}
func (m *WorkflowArtifactGCTaskList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3735,7 +3763,7 @@ var xxx_messageInfo_WorkflowArtifactGCTaskList proto.InternalMessageInfo
func (m *WorkflowEventBinding) Reset() { *m = WorkflowEventBinding{} }
func (*WorkflowEventBinding) ProtoMessage() {}
func (*WorkflowEventBinding) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{132}
+ return fileDescriptor_724696e352c3df5f, []int{133}
}
func (m *WorkflowEventBinding) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3763,7 +3791,7 @@ var xxx_messageInfo_WorkflowEventBinding proto.InternalMessageInfo
func (m *WorkflowEventBindingList) Reset() { *m = WorkflowEventBindingList{} }
func (*WorkflowEventBindingList) ProtoMessage() {}
func (*WorkflowEventBindingList) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{133}
+ return fileDescriptor_724696e352c3df5f, []int{134}
}
func (m *WorkflowEventBindingList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3791,7 +3819,7 @@ var xxx_messageInfo_WorkflowEventBindingList proto.InternalMessageInfo
func (m *WorkflowEventBindingSpec) Reset() { *m = WorkflowEventBindingSpec{} }
func (*WorkflowEventBindingSpec) ProtoMessage() {}
func (*WorkflowEventBindingSpec) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{134}
+ return fileDescriptor_724696e352c3df5f, []int{135}
}
func (m *WorkflowEventBindingSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3819,7 +3847,7 @@ var xxx_messageInfo_WorkflowEventBindingSpec proto.InternalMessageInfo
func (m *WorkflowLevelArtifactGC) Reset() { *m = WorkflowLevelArtifactGC{} }
func (*WorkflowLevelArtifactGC) ProtoMessage() {}
func (*WorkflowLevelArtifactGC) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{135}
+ return fileDescriptor_724696e352c3df5f, []int{136}
}
func (m *WorkflowLevelArtifactGC) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3847,7 +3875,7 @@ var xxx_messageInfo_WorkflowLevelArtifactGC proto.InternalMessageInfo
func (m *WorkflowList) Reset() { *m = WorkflowList{} }
func (*WorkflowList) ProtoMessage() {}
func (*WorkflowList) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{136}
+ return fileDescriptor_724696e352c3df5f, []int{137}
}
func (m *WorkflowList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3875,7 +3903,7 @@ var xxx_messageInfo_WorkflowList proto.InternalMessageInfo
func (m *WorkflowMetadata) Reset() { *m = WorkflowMetadata{} }
func (*WorkflowMetadata) ProtoMessage() {}
func (*WorkflowMetadata) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{137}
+ return fileDescriptor_724696e352c3df5f, []int{138}
}
func (m *WorkflowMetadata) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3903,7 +3931,7 @@ var xxx_messageInfo_WorkflowMetadata proto.InternalMessageInfo
func (m *WorkflowSpec) Reset() { *m = WorkflowSpec{} }
func (*WorkflowSpec) ProtoMessage() {}
func (*WorkflowSpec) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{138}
+ return fileDescriptor_724696e352c3df5f, []int{139}
}
func (m *WorkflowSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3931,7 +3959,7 @@ var xxx_messageInfo_WorkflowSpec proto.InternalMessageInfo
func (m *WorkflowStatus) Reset() { *m = WorkflowStatus{} }
func (*WorkflowStatus) ProtoMessage() {}
func (*WorkflowStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{139}
+ return fileDescriptor_724696e352c3df5f, []int{140}
}
func (m *WorkflowStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3959,7 +3987,7 @@ var xxx_messageInfo_WorkflowStatus proto.InternalMessageInfo
func (m *WorkflowStep) Reset() { *m = WorkflowStep{} }
func (*WorkflowStep) ProtoMessage() {}
func (*WorkflowStep) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{140}
+ return fileDescriptor_724696e352c3df5f, []int{141}
}
func (m *WorkflowStep) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3987,7 +4015,7 @@ var xxx_messageInfo_WorkflowStep proto.InternalMessageInfo
func (m *WorkflowTaskResult) Reset() { *m = WorkflowTaskResult{} }
func (*WorkflowTaskResult) ProtoMessage() {}
func (*WorkflowTaskResult) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{141}
+ return fileDescriptor_724696e352c3df5f, []int{142}
}
func (m *WorkflowTaskResult) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4015,7 +4043,7 @@ var xxx_messageInfo_WorkflowTaskResult proto.InternalMessageInfo
func (m *WorkflowTaskResultList) Reset() { *m = WorkflowTaskResultList{} }
func (*WorkflowTaskResultList) ProtoMessage() {}
func (*WorkflowTaskResultList) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{142}
+ return fileDescriptor_724696e352c3df5f, []int{143}
}
func (m *WorkflowTaskResultList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4043,7 +4071,7 @@ var xxx_messageInfo_WorkflowTaskResultList proto.InternalMessageInfo
func (m *WorkflowTaskSet) Reset() { *m = WorkflowTaskSet{} }
func (*WorkflowTaskSet) ProtoMessage() {}
func (*WorkflowTaskSet) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{143}
+ return fileDescriptor_724696e352c3df5f, []int{144}
}
func (m *WorkflowTaskSet) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4071,7 +4099,7 @@ var xxx_messageInfo_WorkflowTaskSet proto.InternalMessageInfo
func (m *WorkflowTaskSetList) Reset() { *m = WorkflowTaskSetList{} }
func (*WorkflowTaskSetList) ProtoMessage() {}
func (*WorkflowTaskSetList) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{144}
+ return fileDescriptor_724696e352c3df5f, []int{145}
}
func (m *WorkflowTaskSetList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4099,7 +4127,7 @@ var xxx_messageInfo_WorkflowTaskSetList proto.InternalMessageInfo
func (m *WorkflowTaskSetSpec) Reset() { *m = WorkflowTaskSetSpec{} }
func (*WorkflowTaskSetSpec) ProtoMessage() {}
func (*WorkflowTaskSetSpec) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{145}
+ return fileDescriptor_724696e352c3df5f, []int{146}
}
func (m *WorkflowTaskSetSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4127,7 +4155,7 @@ var xxx_messageInfo_WorkflowTaskSetSpec proto.InternalMessageInfo
func (m *WorkflowTaskSetStatus) Reset() { *m = WorkflowTaskSetStatus{} }
func (*WorkflowTaskSetStatus) ProtoMessage() {}
func (*WorkflowTaskSetStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{146}
+ return fileDescriptor_724696e352c3df5f, []int{147}
}
func (m *WorkflowTaskSetStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4155,7 +4183,7 @@ var xxx_messageInfo_WorkflowTaskSetStatus proto.InternalMessageInfo
func (m *WorkflowTemplate) Reset() { *m = WorkflowTemplate{} }
func (*WorkflowTemplate) ProtoMessage() {}
func (*WorkflowTemplate) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{147}
+ return fileDescriptor_724696e352c3df5f, []int{148}
}
func (m *WorkflowTemplate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4183,7 +4211,7 @@ var xxx_messageInfo_WorkflowTemplate proto.InternalMessageInfo
func (m *WorkflowTemplateList) Reset() { *m = WorkflowTemplateList{} }
func (*WorkflowTemplateList) ProtoMessage() {}
func (*WorkflowTemplateList) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{148}
+ return fileDescriptor_724696e352c3df5f, []int{149}
}
func (m *WorkflowTemplateList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4211,7 +4239,7 @@ var xxx_messageInfo_WorkflowTemplateList proto.InternalMessageInfo
func (m *WorkflowTemplateRef) Reset() { *m = WorkflowTemplateRef{} }
func (*WorkflowTemplateRef) ProtoMessage() {}
func (*WorkflowTemplateRef) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{149}
+ return fileDescriptor_724696e352c3df5f, []int{150}
}
func (m *WorkflowTemplateRef) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4239,7 +4267,7 @@ var xxx_messageInfo_WorkflowTemplateRef proto.InternalMessageInfo
func (m *ZipStrategy) Reset() { *m = ZipStrategy{} }
func (*ZipStrategy) ProtoMessage() {}
func (*ZipStrategy) Descriptor() ([]byte, []int) {
- return fileDescriptor_724696e352c3df5f, []int{150}
+ return fileDescriptor_724696e352c3df5f, []int{151}
}
func (m *ZipStrategy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4395,6 +4423,7 @@ func init() {
proto.RegisterType((*SubmitOpts)(nil), "github.com.argoproj.argo_workflows.v3.pkg.apis.workflow.v1alpha1.SubmitOpts")
proto.RegisterType((*SuppliedValueFrom)(nil), "github.com.argoproj.argo_workflows.v3.pkg.apis.workflow.v1alpha1.SuppliedValueFrom")
proto.RegisterType((*SuspendTemplate)(nil), "github.com.argoproj.argo_workflows.v3.pkg.apis.workflow.v1alpha1.SuspendTemplate")
+ proto.RegisterType((*SyncSelector)(nil), "github.com.argoproj.argo_workflows.v3.pkg.apis.workflow.v1alpha1.SyncSelector")
proto.RegisterType((*Synchronization)(nil), "github.com.argoproj.argo_workflows.v3.pkg.apis.workflow.v1alpha1.Synchronization")
proto.RegisterType((*SynchronizationStatus)(nil), "github.com.argoproj.argo_workflows.v3.pkg.apis.workflow.v1alpha1.SynchronizationStatus")
proto.RegisterType((*TTLStrategy)(nil), "github.com.argoproj.argo_workflows.v3.pkg.apis.workflow.v1alpha1.TTLStrategy")
@@ -4448,705 +4477,707 @@ func init() {
}
var fileDescriptor_724696e352c3df5f = []byte{
- // 11163 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0xbd, 0x6b, 0x70, 0x64, 0xc7,
- 0x75, 0x18, 0xcc, 0x3b, 0xc0, 0xe0, 0x71, 0xf0, 0x58, 0x6c, 0xef, 0x6b, 0x88, 0x25, 0x17, 0xf4,
- 0xa5, 0xc8, 0x8f, 0xb4, 0x28, 0xac, 0xb9, 0x94, 0xbe, 0x30, 0x52, 0x22, 0x09, 0x8f, 0x05, 0x16,
- 0x04, 0xb0, 0x00, 0x7b, 0xb0, 0xbb, 0x26, 0x45, 0x4b, 0xba, 0x98, 0x69, 0xcc, 0x5c, 0x62, 0xe6,
- 0xde, 0xe1, 0xbd, 0x77, 0xb0, 0x0b, 0x3e, 0x24, 0x85, 0x7a, 0xc7, 0xb2, 0x15, 0xcb, 0x92, 0x2c,
- 0x29, 0x49, 0x95, 0xa2, 0x48, 0x09, 0x4b, 0x76, 0x25, 0x65, 0xff, 0x4a, 0xd9, 0xff, 0x52, 0x29,
- 0x97, 0x52, 0x4e, 0x25, 0x72, 0x45, 0x29, 0xeb, 0x87, 0x0d, 0x46, 0x9b, 0x44, 0x95, 0x4a, 0xa2,
- 0xaa, 0x58, 0x15, 0x27, 0xf1, 0xe6, 0x51, 0xa9, 0x7e, 0xde, 0xee, 0x3b, 0x77, 0xb0, 0x03, 0x6c,
- 0x03, 0xab, 0xb2, 0x7f, 0x01, 0x73, 0xfa, 0xf4, 0x39, 0xdd, 0x7d, 0xbb, 0x4f, 0x9f, 0x3e, 0xe7,
- 0xf4, 0x69, 0x58, 0xaf, 0xf9, 0x49, 0xbd, 0xbd, 0x39, 0x5d, 0x09, 0x9b, 0x17, 0xbd, 0xa8, 0x16,
- 0xb6, 0xa2, 0xf0, 0x65, 0xf6, 0xcf, 0xbb, 0x6e, 0x86, 0xd1, 0xf6, 0x56, 0x23, 0xbc, 0x19, 0x5f,
- 0xdc, 0x79, 0xe6, 0x62, 0x6b, 0xbb, 0x76, 0xd1, 0x6b, 0xf9, 0xf1, 0x45, 0x09, 0xbd, 0xb8, 0xf3,
- 0xb4, 0xd7, 0x68, 0xd5, 0xbd, 0xa7, 0x2f, 0xd6, 0x48, 0x40, 0x22, 0x2f, 0x21, 0xd5, 0xe9, 0x56,
- 0x14, 0x26, 0x21, 0xfa, 0x60, 0x4a, 0x71, 0x5a, 0x52, 0x64, 0xff, 0x7c, 0x44, 0x51, 0x9c, 0xde,
- 0x79, 0x66, 0xba, 0xb5, 0x5d, 0x9b, 0xa6, 0x14, 0xa7, 0x25, 0x74, 0x5a, 0x52, 0x9c, 0x7c, 0x97,
- 0xd6, 0xa6, 0x5a, 0x58, 0x0b, 0x2f, 0x32, 0xc2, 0x9b, 0xed, 0x2d, 0xf6, 0x8b, 0xfd, 0x60, 0xff,
- 0x71, 0x86, 0x93, 0xee, 0xf6, 0xb3, 0xf1, 0xb4, 0x1f, 0xd2, 0xf6, 0x5d, 0xac, 0x84, 0x11, 0xb9,
- 0xb8, 0xd3, 0xd1, 0xa8, 0xc9, 0x77, 0x68, 0x38, 0xad, 0xb0, 0xe1, 0x57, 0x76, 0xf3, 0xb0, 0xde,
- 0x9d, 0x62, 0x35, 0xbd, 0x4a, 0xdd, 0x0f, 0x48, 0xb4, 0x9b, 0x76, 0xbd, 0x49, 0x12, 0x2f, 0xaf,
- 0xd6, 0xc5, 0x6e, 0xb5, 0xa2, 0x76, 0x90, 0xf8, 0x4d, 0xd2, 0x51, 0xe1, 0xff, 0xbf, 0x5b, 0x85,
- 0xb8, 0x52, 0x27, 0x4d, 0xaf, 0xa3, 0xde, 0x33, 0xdd, 0xea, 0xb5, 0x13, 0xbf, 0x71, 0xd1, 0x0f,
- 0x92, 0x38, 0x89, 0xb2, 0x95, 0xdc, 0xcb, 0x30, 0x30, 0xd3, 0x0c, 0xdb, 0x41, 0x82, 0xde, 0x07,
- 0xc5, 0x1d, 0xaf, 0xd1, 0x26, 0x25, 0xe7, 0x11, 0xe7, 0x89, 0xe1, 0xd9, 0xc7, 0xbe, 0xb7, 0x37,
- 0xf5, 0xc0, 0xed, 0xbd, 0xa9, 0xe2, 0x75, 0x0a, 0xbc, 0xb3, 0x37, 0x75, 0x9a, 0x04, 0x95, 0xb0,
- 0xea, 0x07, 0xb5, 0x8b, 0x2f, 0xc7, 0x61, 0x30, 0x7d, 0xb5, 0xdd, 0xdc, 0x24, 0x11, 0xe6, 0x75,
- 0xdc, 0x7f, 0x5d, 0x80, 0x13, 0x33, 0x51, 0xa5, 0xee, 0xef, 0x90, 0x72, 0x42, 0xe9, 0xd7, 0x76,
- 0x51, 0x1d, 0xfa, 0x12, 0x2f, 0x62, 0xe4, 0x46, 0x2e, 0xad, 0x4e, 0xdf, 0xeb, 0x77, 0x9f, 0xde,
- 0xf0, 0x22, 0x49, 0x7b, 0x76, 0xf0, 0xf6, 0xde, 0x54, 0xdf, 0x86, 0x17, 0x61, 0xca, 0x02, 0x35,
- 0xa0, 0x3f, 0x08, 0x03, 0x52, 0x2a, 0x30, 0x56, 0x57, 0xef, 0x9d, 0xd5, 0xd5, 0x30, 0x50, 0xfd,
- 0x98, 0x1d, 0xba, 0xbd, 0x37, 0xd5, 0x4f, 0x21, 0x98, 0x71, 0xa1, 0xfd, 0x7a, 0xd5, 0x6f, 0x95,
- 0xfa, 0x6c, 0xf5, 0xeb, 0x45, 0xbf, 0x65, 0xf6, 0xeb, 0x45, 0xbf, 0x85, 0x29, 0x0b, 0xf7, 0xf3,
- 0x05, 0x18, 0x9e, 0x89, 0x6a, 0xed, 0x26, 0x09, 0x92, 0x18, 0x7d, 0x1c, 0xa0, 0xe5, 0x45, 0x5e,
- 0x93, 0x24, 0x24, 0x8a, 0x4b, 0xce, 0x23, 0x7d, 0x4f, 0x8c, 0x5c, 0x5a, 0xbe, 0x77, 0xf6, 0xeb,
- 0x92, 0xe6, 0x2c, 0x12, 0x9f, 0x1c, 0x14, 0x28, 0xc6, 0x1a, 0x4b, 0xf4, 0x1a, 0x0c, 0x7b, 0x51,
- 0xe2, 0x6f, 0x79, 0x95, 0x24, 0x2e, 0x15, 0x18, 0xff, 0xe7, 0xee, 0x9d, 0xff, 0x8c, 0x20, 0x39,
- 0x7b, 0x52, 0xb0, 0x1f, 0x96, 0x90, 0x18, 0xa7, 0xfc, 0xdc, 0xdf, 0xed, 0x87, 0x91, 0x99, 0x28,
- 0x59, 0x9c, 0x2b, 0x27, 0x5e, 0xd2, 0x8e, 0xd1, 0x1f, 0x38, 0x70, 0x2a, 0xe6, 0xc3, 0xe6, 0x93,
- 0x78, 0x3d, 0x0a, 0x2b, 0x24, 0x8e, 0x49, 0x55, 0x8c, 0xcb, 0x96, 0x95, 0x76, 0x49, 0x66, 0xd3,
- 0xe5, 0x4e, 0x46, 0x97, 0x83, 0x24, 0xda, 0x9d, 0x7d, 0x5a, 0xb4, 0xf9, 0x54, 0x0e, 0xc6, 0x9b,
- 0x6f, 0x4f, 0x21, 0xd9, 0x15, 0x4a, 0x89, 0x7f, 0x62, 0x9c, 0xd7, 0x6a, 0xf4, 0x75, 0x07, 0x46,
- 0x5b, 0x61, 0x35, 0xc6, 0xa4, 0x12, 0xb6, 0x5b, 0xa4, 0x2a, 0x86, 0xf7, 0x23, 0x76, 0xbb, 0xb1,
- 0xae, 0x71, 0xe0, 0xed, 0x3f, 0x2d, 0xda, 0x3f, 0xaa, 0x17, 0x61, 0xa3, 0x29, 0xe8, 0x59, 0x18,
- 0x0d, 0xc2, 0xa4, 0xdc, 0x22, 0x15, 0x7f, 0xcb, 0x27, 0x55, 0x36, 0xf1, 0x87, 0xd2, 0x9a, 0x57,
- 0xb5, 0x32, 0x6c, 0x60, 0x4e, 0x2e, 0x40, 0xa9, 0xdb, 0xc8, 0xa1, 0x09, 0xe8, 0xdb, 0x26, 0xbb,
- 0x5c, 0xd8, 0x60, 0xfa, 0x2f, 0x3a, 0x2d, 0x05, 0x10, 0x5d, 0xc6, 0x43, 0x42, 0xb2, 0xbc, 0xb7,
- 0xf0, 0xac, 0x33, 0xf9, 0x01, 0x38, 0xd9, 0xd1, 0xf4, 0x83, 0x10, 0x70, 0xbf, 0x3f, 0x00, 0x43,
- 0xf2, 0x53, 0xa0, 0x47, 0xa0, 0x3f, 0xf0, 0x9a, 0x52, 0xce, 0x8d, 0x8a, 0x7e, 0xf4, 0x5f, 0xf5,
- 0x9a, 0x74, 0x85, 0x7b, 0x4d, 0x42, 0x31, 0x5a, 0x5e, 0x52, 0x67, 0x74, 0x34, 0x8c, 0x75, 0x2f,
- 0xa9, 0x63, 0x56, 0x82, 0x1e, 0x82, 0xfe, 0x66, 0x58, 0x25, 0x6c, 0x2c, 0x8a, 0x5c, 0x42, 0xac,
- 0x86, 0x55, 0x82, 0x19, 0x94, 0xd6, 0xdf, 0x8a, 0xc2, 0x66, 0xa9, 0xdf, 0xac, 0xbf, 0x10, 0x85,
- 0x4d, 0xcc, 0x4a, 0xd0, 0xd7, 0x1c, 0x98, 0x90, 0x73, 0x7b, 0x25, 0xac, 0x78, 0x89, 0x1f, 0x06,
- 0xa5, 0x22, 0x93, 0x28, 0xd8, 0xde, 0x92, 0x92, 0x94, 0x67, 0x4b, 0xa2, 0x09, 0x13, 0xd9, 0x12,
- 0xdc, 0xd1, 0x0a, 0x74, 0x09, 0xa0, 0xd6, 0x08, 0x37, 0xbd, 0x06, 0x1d, 0x90, 0xd2, 0x00, 0xeb,
- 0x82, 0x92, 0x0c, 0x8b, 0xaa, 0x04, 0x6b, 0x58, 0xe8, 0x16, 0x0c, 0x7a, 0x5c, 0xfa, 0x97, 0x06,
- 0x59, 0x27, 0x9e, 0xb7, 0xd1, 0x09, 0x63, 0x3b, 0x99, 0x1d, 0xb9, 0xbd, 0x37, 0x35, 0x28, 0x80,
- 0x58, 0xb2, 0x43, 0x4f, 0xc1, 0x50, 0xd8, 0xa2, 0xed, 0xf6, 0x1a, 0xa5, 0x21, 0x36, 0x31, 0x27,
- 0x44, 0x5b, 0x87, 0xd6, 0x04, 0x1c, 0x2b, 0x0c, 0xf4, 0x24, 0x0c, 0xc6, 0xed, 0x4d, 0xfa, 0x1d,
- 0x4b, 0xc3, 0xac, 0x63, 0x27, 0x04, 0xf2, 0x60, 0x99, 0x83, 0xb1, 0x2c, 0x47, 0xef, 0x81, 0x91,
- 0x88, 0x54, 0xda, 0x51, 0x4c, 0xe8, 0x87, 0x2d, 0x01, 0xa3, 0x7d, 0x4a, 0xa0, 0x8f, 0xe0, 0xb4,
- 0x08, 0xeb, 0x78, 0xe8, 0xfd, 0x30, 0x4e, 0x3f, 0xf0, 0xe5, 0x5b, 0xad, 0x88, 0xc4, 0x31, 0xfd,
- 0xaa, 0x23, 0x8c, 0xd1, 0x59, 0x51, 0x73, 0x7c, 0xc1, 0x28, 0xc5, 0x19, 0x6c, 0xf4, 0x3a, 0x80,
- 0xa7, 0x64, 0x46, 0x69, 0x94, 0x0d, 0xe6, 0x8a, 0xbd, 0x19, 0xb1, 0x38, 0x37, 0x3b, 0x4e, 0xbf,
- 0x63, 0xfa, 0x1b, 0x6b, 0xfc, 0xe8, 0xf8, 0x54, 0x49, 0x83, 0x24, 0xa4, 0x5a, 0x1a, 0x63, 0x1d,
- 0x56, 0xe3, 0x33, 0xcf, 0xc1, 0x58, 0x96, 0xbb, 0x7f, 0xbb, 0x00, 0x1a, 0x15, 0x34, 0x0b, 0x43,
- 0x42, 0xae, 0x89, 0x25, 0x39, 0xfb, 0xb8, 0xfc, 0x0e, 0xf2, 0x0b, 0xde, 0xd9, 0xcb, 0x95, 0x87,
- 0xaa, 0x1e, 0x7a, 0x03, 0x46, 0x5a, 0x61, 0x75, 0x95, 0x24, 0x5e, 0xd5, 0x4b, 0x3c, 0xb1, 0x9b,
- 0x5b, 0xd8, 0x61, 0x24, 0xc5, 0xd9, 0x13, 0xf4, 0xd3, 0xad, 0xa7, 0x2c, 0xb0, 0xce, 0x0f, 0x3d,
- 0x07, 0x28, 0x26, 0xd1, 0x8e, 0x5f, 0x21, 0x33, 0x95, 0x0a, 0x55, 0x89, 0xd8, 0x02, 0xe8, 0x63,
- 0x9d, 0x99, 0x14, 0x9d, 0x41, 0xe5, 0x0e, 0x0c, 0x9c, 0x53, 0xcb, 0xfd, 0x41, 0x01, 0xc6, 0xb5,
- 0xbe, 0xb6, 0x48, 0x05, 0xbd, 0xe5, 0xc0, 0x09, 0xb5, 0x9d, 0xcd, 0xee, 0x5e, 0xa5, 0xb3, 0x8a,
- 0x6f, 0x56, 0xc4, 0xe6, 0xf7, 0xa5, 0xbc, 0xd4, 0x4f, 0xc1, 0x87, 0xcb, 0xfa, 0x73, 0xa2, 0x0f,
- 0x27, 0x32, 0xa5, 0x38, 0xdb, 0xac, 0xc9, 0xaf, 0x3a, 0x70, 0x3a, 0x8f, 0x44, 0x8e, 0xcc, 0xad,
- 0xeb, 0x32, 0xd7, 0xaa, 0xf0, 0xa2, 0x5c, 0x69, 0x67, 0x74, 0x39, 0xfe, 0x7f, 0x0b, 0x30, 0xa1,
- 0x4f, 0x21, 0xa6, 0x09, 0xfc, 0x53, 0x07, 0xce, 0xc8, 0x1e, 0x60, 0x12, 0xb7, 0x1b, 0x99, 0xe1,
- 0x6d, 0x5a, 0x1d, 0x5e, 0xbe, 0x93, 0xce, 0xe4, 0xf1, 0xe3, 0xc3, 0xfc, 0xb0, 0x18, 0xe6, 0x33,
- 0xb9, 0x38, 0x38, 0xbf, 0xa9, 0x93, 0xdf, 0x76, 0x60, 0xb2, 0x3b, 0xd1, 0x9c, 0x81, 0x6f, 0x99,
- 0x03, 0xff, 0xa2, 0xbd, 0x4e, 0x72, 0xf6, 0x6c, 0xf8, 0x59, 0x67, 0xf5, 0x0f, 0xf0, 0x5b, 0x43,
- 0xd0, 0xb1, 0x87, 0xa0, 0xa7, 0x61, 0x44, 0x88, 0xe3, 0x95, 0xb0, 0x16, 0xb3, 0x46, 0x0e, 0xf1,
- 0xb5, 0x36, 0x93, 0x82, 0xb1, 0x8e, 0x83, 0xaa, 0x50, 0x88, 0x9f, 0x11, 0x4d, 0xb7, 0x20, 0xde,
- 0xca, 0xcf, 0x28, 0x2d, 0x72, 0xe0, 0xf6, 0xde, 0x54, 0xa1, 0xfc, 0x0c, 0x2e, 0xc4, 0xcf, 0x50,
- 0x4d, 0xbd, 0xe6, 0x27, 0xf6, 0x34, 0xf5, 0x45, 0x3f, 0x51, 0x7c, 0x98, 0xa6, 0xbe, 0xe8, 0x27,
- 0x98, 0xb2, 0xa0, 0x27, 0x90, 0x7a, 0x92, 0xb4, 0xd8, 0x8e, 0x6f, 0xe5, 0x04, 0x72, 0x65, 0x63,
- 0x63, 0x5d, 0xf1, 0x62, 0xfa, 0x05, 0x85, 0x60, 0xc6, 0x05, 0x7d, 0xce, 0xa1, 0x23, 0xce, 0x0b,
- 0xc3, 0x68, 0x57, 0x28, 0x0e, 0xd7, 0xec, 0x4d, 0x81, 0x30, 0xda, 0x55, 0xcc, 0xc5, 0x87, 0x54,
- 0x05, 0x58, 0x67, 0xcd, 0x3a, 0x5e, 0xdd, 0x8a, 0x99, 0x9e, 0x60, 0xa7, 0xe3, 0xf3, 0x0b, 0xe5,
- 0x4c, 0xc7, 0xe7, 0x17, 0xca, 0x98, 0x71, 0xa1, 0x1f, 0x34, 0xf2, 0x6e, 0x0a, 0x1d, 0xc3, 0xc2,
- 0x07, 0xc5, 0xde, 0x4d, 0xf3, 0x83, 0x62, 0xef, 0x26, 0xa6, 0x2c, 0x28, 0xa7, 0x30, 0x8e, 0x99,
- 0x4a, 0x61, 0x85, 0xd3, 0x5a, 0xb9, 0x6c, 0x72, 0x5a, 0x2b, 0x97, 0x31, 0x65, 0xc1, 0x26, 0x69,
- 0x25, 0x66, 0xfa, 0x88, 0x9d, 0x49, 0x3a, 0x97, 0xe1, 0xb4, 0x38, 0x57, 0xc6, 0x94, 0x05, 0x15,
- 0x19, 0xde, 0xab, 0xed, 0x88, 0x2b, 0x33, 0x23, 0x97, 0xd6, 0x2c, 0xcc, 0x17, 0x4a, 0x4e, 0x71,
- 0x1b, 0xbe, 0xbd, 0x37, 0x55, 0x64, 0x20, 0xcc, 0x19, 0xb9, 0xbf, 0xdf, 0x97, 0x8a, 0x0b, 0x29,
- 0xcf, 0xd1, 0xaf, 0xb1, 0x8d, 0x50, 0xc8, 0x02, 0xa1, 0xfa, 0x3a, 0x47, 0xa6, 0xfa, 0x9e, 0xe2,
- 0x3b, 0x9e, 0xc1, 0x0e, 0x67, 0xf9, 0xa3, 0x2f, 0x39, 0x9d, 0x67, 0x5b, 0xcf, 0xfe, 0x5e, 0x96,
- 0x6e, 0xcc, 0x7c, 0xaf, 0xd8, 0xf7, 0xc8, 0x3b, 0xf9, 0x39, 0x27, 0x55, 0x22, 0xe2, 0x6e, 0xfb,
- 0xc0, 0x47, 0xcd, 0x7d, 0xc0, 0xe2, 0x81, 0x5c, 0x97, 0xfb, 0x9f, 0x77, 0x60, 0x4c, 0xc2, 0xa9,
- 0x7a, 0x1c, 0xa3, 0x5b, 0x30, 0x24, 0x5b, 0x2a, 0xbe, 0x9e, 0x4d, 0x5b, 0x80, 0x52, 0xe2, 0x55,
- 0x63, 0x14, 0x37, 0xf7, 0xad, 0x01, 0x40, 0xe9, 0x5e, 0xd5, 0x0a, 0x63, 0x9f, 0x49, 0xa2, 0x43,
- 0xec, 0x42, 0x81, 0xb6, 0x0b, 0x5d, 0xb7, 0xb9, 0x0b, 0xa5, 0xcd, 0x32, 0xf6, 0xa3, 0x2f, 0x65,
- 0xe4, 0x36, 0xdf, 0x98, 0x3e, 0x72, 0x24, 0x72, 0x5b, 0x6b, 0xc2, 0xfe, 0x12, 0x7c, 0x47, 0x48,
- 0x70, 0xbe, 0x75, 0xfd, 0xa2, 0x5d, 0x09, 0xae, 0xb5, 0x22, 0x2b, 0xcb, 0x23, 0x2e, 0x61, 0xf9,
- 0xde, 0x75, 0xc3, 0xaa, 0x84, 0xd5, 0xb8, 0x9a, 0xb2, 0x36, 0xe2, 0xb2, 0x76, 0xc0, 0x16, 0x4f,
- 0x4d, 0xd6, 0x66, 0x79, 0x2a, 0xa9, 0xfb, 0xaa, 0x94, 0xba, 0x7c, 0xd7, 0x7a, 0xc1, 0xb2, 0xd4,
- 0xd5, 0xf8, 0x76, 0xca, 0xdf, 0x57, 0xe0, 0x4c, 0x27, 0x1e, 0x26, 0x5b, 0xe8, 0x22, 0x0c, 0x57,
- 0xc2, 0x60, 0xcb, 0xaf, 0xad, 0x7a, 0x2d, 0x71, 0x5e, 0x53, 0xb2, 0x68, 0x4e, 0x16, 0xe0, 0x14,
- 0x07, 0x3d, 0xcc, 0x05, 0x0f, 0xb7, 0x88, 0x8c, 0x08, 0xd4, 0xbe, 0x65, 0xb2, 0xcb, 0xa4, 0xd0,
- 0x7b, 0x87, 0xbe, 0xf6, 0xcd, 0xa9, 0x07, 0x3e, 0xf1, 0xc7, 0x8f, 0x3c, 0xe0, 0xfe, 0x61, 0x1f,
- 0x9c, 0xcf, 0xe5, 0x29, 0xb4, 0xf5, 0xdf, 0x32, 0xb4, 0x75, 0xad, 0x5c, 0x48, 0x91, 0x1b, 0x36,
- 0x15, 0x59, 0x8d, 0x7c, 0x9e, 0x5e, 0xae, 0x15, 0xe3, 0xfc, 0x46, 0xd1, 0x81, 0x0a, 0xbc, 0x26,
- 0x89, 0x5b, 0x5e, 0x85, 0x88, 0xde, 0xab, 0x81, 0xba, 0x2a, 0x0b, 0x70, 0x8a, 0xc3, 0x8f, 0xd0,
- 0x5b, 0x5e, 0xbb, 0x91, 0x08, 0x43, 0x99, 0x76, 0x84, 0x66, 0x60, 0x2c, 0xcb, 0xd1, 0xdf, 0x71,
- 0x00, 0x75, 0x72, 0x15, 0x0b, 0x71, 0xe3, 0x28, 0xc6, 0x61, 0xf6, 0xec, 0x6d, 0xed, 0x10, 0xae,
- 0xf5, 0x34, 0xa7, 0x1d, 0xda, 0x37, 0xfd, 0x58, 0xba, 0x0f, 0xf1, 0xc3, 0x41, 0x0f, 0x36, 0x34,
- 0x66, 0x6a, 0xa9, 0x54, 0x48, 0x1c, 0x73, 0x73, 0x9c, 0x6e, 0x6a, 0x61, 0x60, 0x2c, 0xcb, 0xd1,
- 0x14, 0x14, 0x49, 0x14, 0x85, 0x91, 0x38, 0x6b, 0xb3, 0x69, 0x7c, 0x99, 0x02, 0x30, 0x87, 0xbb,
- 0x3f, 0x2e, 0x40, 0xa9, 0xdb, 0xe9, 0x04, 0xfd, 0x8e, 0x76, 0xae, 0x16, 0x27, 0x27, 0x71, 0xf0,
- 0x0b, 0x8f, 0xee, 0x4c, 0x94, 0x3d, 0x00, 0x76, 0x39, 0x61, 0x8b, 0x52, 0x9c, 0x6d, 0xe0, 0xe4,
- 0x97, 0xb5, 0x13, 0xb6, 0x4e, 0x22, 0x67, 0x83, 0xdf, 0x32, 0x37, 0xf8, 0x75, 0xdb, 0x9d, 0xd2,
- 0xb7, 0xf9, 0x3f, 0x29, 0xc2, 0x29, 0x59, 0x5a, 0x26, 0x74, 0xab, 0x7c, 0xbe, 0x4d, 0xa2, 0x5d,
- 0xf4, 0x47, 0x0e, 0x9c, 0xf6, 0xb2, 0xa6, 0x1b, 0x9f, 0x1c, 0xc1, 0x40, 0x6b, 0x5c, 0xa7, 0x67,
- 0x72, 0x38, 0xf2, 0x81, 0xbe, 0x24, 0x06, 0xfa, 0x74, 0x1e, 0x4a, 0x17, 0xbb, 0x7b, 0x6e, 0x07,
- 0xd0, 0xb3, 0x30, 0x2a, 0xe1, 0xcc, 0xdc, 0xc3, 0x97, 0xb8, 0x32, 0x6e, 0xcf, 0x68, 0x65, 0xd8,
- 0xc0, 0xa4, 0x35, 0x13, 0xd2, 0x6c, 0x35, 0xbc, 0x84, 0x68, 0x86, 0x22, 0x55, 0x73, 0x43, 0x2b,
- 0xc3, 0x06, 0x26, 0x7a, 0x1c, 0x06, 0x82, 0xb0, 0x4a, 0x96, 0xaa, 0xc2, 0x40, 0x3c, 0x2e, 0xea,
- 0x0c, 0x5c, 0x65, 0x50, 0x2c, 0x4a, 0xd1, 0x63, 0xa9, 0x35, 0xae, 0xc8, 0x96, 0xd0, 0x48, 0x9e,
- 0x25, 0x0e, 0xfd, 0x3d, 0x07, 0x86, 0x69, 0x8d, 0x8d, 0xdd, 0x16, 0xa1, 0x7b, 0x1b, 0xfd, 0x22,
- 0xd5, 0xa3, 0xf9, 0x22, 0x57, 0x25, 0x1b, 0xd3, 0xd4, 0x31, 0xac, 0xe0, 0x6f, 0xbe, 0x3d, 0x35,
- 0x24, 0x7f, 0xe0, 0xb4, 0x55, 0x93, 0x8b, 0xf0, 0x60, 0xd7, 0xaf, 0x79, 0x20, 0x57, 0xc0, 0x5f,
- 0x83, 0x71, 0xb3, 0x11, 0x07, 0xf2, 0x03, 0xfc, 0x13, 0x6d, 0xd9, 0xf1, 0x7e, 0x09, 0x79, 0x76,
- 0xdf, 0xb4, 0x59, 0x35, 0x19, 0xe6, 0xc5, 0xd4, 0x33, 0x27, 0xc3, 0xbc, 0x98, 0x0c, 0xf3, 0xee,
- 0x1f, 0x38, 0xe9, 0xd2, 0xd4, 0xd4, 0x3c, 0xba, 0x31, 0xb7, 0xa3, 0x86, 0x10, 0xc4, 0x6a, 0x63,
- 0xbe, 0x86, 0x57, 0x30, 0x85, 0xa3, 0x2f, 0x6b, 0xd2, 0x91, 0x56, 0x6b, 0x0b, 0xb7, 0x86, 0x25,
- 0x13, 0xbd, 0x41, 0xb8, 0x53, 0xfe, 0x89, 0x02, 0x9c, 0x6d, 0x82, 0xfb, 0xa5, 0x02, 0x3c, 0xbc,
- 0xaf, 0xd2, 0x9a, 0xdb, 0x70, 0xe7, 0xbe, 0x37, 0x9c, 0x6e, 0x6b, 0x11, 0x69, 0x85, 0xd7, 0xf0,
- 0x8a, 0xf8, 0x5e, 0x6a, 0x5b, 0xc3, 0x1c, 0x8c, 0x65, 0x39, 0x55, 0x1d, 0xb6, 0xc9, 0xee, 0x42,
- 0x18, 0x35, 0xbd, 0x44, 0x48, 0x07, 0xa5, 0x3a, 0x2c, 0xcb, 0x02, 0x9c, 0xe2, 0xb8, 0x7f, 0xe4,
- 0x40, 0xb6, 0x01, 0xc8, 0x83, 0xf1, 0x76, 0x4c, 0x22, 0xba, 0xa5, 0x96, 0x49, 0x25, 0x22, 0x72,
- 0x7a, 0x3e, 0x36, 0xcd, 0xbd, 0xfd, 0xb4, 0x87, 0xd3, 0x95, 0x30, 0x22, 0xd3, 0x3b, 0x4f, 0x4f,
- 0x73, 0x8c, 0x65, 0xb2, 0x5b, 0x26, 0x0d, 0x42, 0x69, 0xcc, 0xa2, 0xdb, 0x7b, 0x53, 0xe3, 0xd7,
- 0x0c, 0x02, 0x38, 0x43, 0x90, 0xb2, 0x68, 0x79, 0x71, 0x7c, 0x33, 0x8c, 0xaa, 0x82, 0x45, 0xe1,
- 0xc0, 0x2c, 0xd6, 0x0d, 0x02, 0x38, 0x43, 0xd0, 0xfd, 0x01, 0x3d, 0x3e, 0xea, 0x5a, 0x2b, 0xfa,
- 0x26, 0xd5, 0x7d, 0x28, 0x64, 0xb6, 0x11, 0x6e, 0xce, 0x85, 0x41, 0xe2, 0xf9, 0x01, 0x91, 0xc1,
- 0x02, 0x1b, 0x96, 0x74, 0x64, 0x83, 0x76, 0x6a, 0xc3, 0xef, 0x2c, 0xc3, 0x39, 0x6d, 0xa1, 0x3a,
- 0xce, 0x66, 0x23, 0xdc, 0xcc, 0x7a, 0x01, 0x29, 0x12, 0x66, 0x25, 0xee, 0x4f, 0x1d, 0x38, 0xd7,
- 0x45, 0x19, 0x47, 0x5f, 0x75, 0x60, 0x6c, 0xf3, 0x67, 0xa2, 0x6f, 0x66, 0x33, 0xd0, 0xfb, 0x61,
- 0x9c, 0x02, 0xe8, 0x4e, 0x24, 0xe6, 0x66, 0xc1, 0xf4, 0x50, 0xcd, 0x1a, 0xa5, 0x38, 0x83, 0xed,
- 0xfe, 0x7a, 0x01, 0x72, 0xb8, 0xa0, 0xa7, 0x60, 0x88, 0x04, 0xd5, 0x56, 0xe8, 0x07, 0x89, 0x10,
- 0x46, 0x4a, 0xea, 0x5d, 0x16, 0x70, 0xac, 0x30, 0xc4, 0xf9, 0x43, 0x0c, 0x4c, 0xa1, 0xe3, 0xfc,
- 0x21, 0x5a, 0x9e, 0xe2, 0xa0, 0x1a, 0x4c, 0x78, 0xdc, 0xbf, 0xc2, 0xe6, 0x1e, 0x9b, 0xa6, 0x7d,
- 0x07, 0x99, 0xa6, 0xa7, 0x99, 0xfb, 0x33, 0x43, 0x02, 0x77, 0x10, 0x45, 0xef, 0x81, 0x91, 0x76,
- 0x4c, 0xca, 0xf3, 0xcb, 0x73, 0x11, 0xa9, 0xf2, 0x53, 0xb1, 0xe6, 0xf7, 0xbb, 0x96, 0x16, 0x61,
- 0x1d, 0xcf, 0xfd, 0x67, 0x0e, 0x0c, 0xce, 0x7a, 0x95, 0xed, 0x70, 0x6b, 0x8b, 0x0e, 0x45, 0xb5,
- 0x1d, 0xa5, 0x86, 0x2d, 0x6d, 0x28, 0xe6, 0x05, 0x1c, 0x2b, 0x0c, 0xb4, 0x01, 0x03, 0x7c, 0xc1,
- 0x8b, 0x65, 0xf7, 0x0b, 0x5a, 0x7f, 0x54, 0x1c, 0x0f, 0x9b, 0x0e, 0xed, 0xc4, 0x6f, 0x4c, 0xf3,
- 0x38, 0x9e, 0xe9, 0xa5, 0x20, 0x59, 0x8b, 0xca, 0x49, 0xe4, 0x07, 0xb5, 0x59, 0xa0, 0xdb, 0xc5,
- 0x02, 0xa3, 0x81, 0x05, 0x2d, 0xda, 0x8d, 0xa6, 0x77, 0x4b, 0xb2, 0x13, 0xe2, 0x47, 0x75, 0x63,
- 0x35, 0x2d, 0xc2, 0x3a, 0x9e, 0xfb, 0x87, 0x0e, 0x0c, 0xcf, 0x7a, 0xb1, 0x5f, 0xf9, 0x0b, 0x24,
- 0x7c, 0x3e, 0x0c, 0xc5, 0x39, 0xaf, 0x52, 0x27, 0xe8, 0x5a, 0xf6, 0xd0, 0x3b, 0x72, 0xe9, 0x89,
- 0x3c, 0x36, 0xea, 0x00, 0xac, 0x73, 0x1a, 0xeb, 0x76, 0x34, 0x76, 0xdf, 0x76, 0x60, 0x7c, 0xae,
- 0xe1, 0x93, 0x20, 0x99, 0x23, 0x51, 0xc2, 0x06, 0xae, 0x06, 0x13, 0x15, 0x05, 0x39, 0xcc, 0xd0,
- 0xb1, 0xd9, 0x3a, 0x97, 0x21, 0x81, 0x3b, 0x88, 0xa2, 0x2a, 0x9c, 0xe0, 0xb0, 0x74, 0x55, 0x1c,
- 0x68, 0xfc, 0x98, 0x75, 0x74, 0xce, 0xa4, 0x80, 0xb3, 0x24, 0xdd, 0x9f, 0x38, 0x70, 0x6e, 0xae,
- 0xd1, 0x8e, 0x13, 0x12, 0xdd, 0x10, 0xd2, 0x48, 0xaa, 0xb7, 0xe8, 0xa3, 0x30, 0xd4, 0x94, 0x1e,
- 0x5b, 0xe7, 0x2e, 0x13, 0x98, 0xc9, 0x33, 0x8a, 0x4d, 0x1b, 0xb3, 0xb6, 0xf9, 0x32, 0xa9, 0x24,
- 0xab, 0x24, 0xf1, 0xd2, 0xf0, 0x82, 0x14, 0x86, 0x15, 0x55, 0xd4, 0x82, 0xfe, 0xb8, 0x45, 0x2a,
- 0xf6, 0xa2, 0xbb, 0x64, 0x1f, 0xca, 0x2d, 0x52, 0x49, 0xe5, 0x3a, 0xf3, 0x35, 0x32, 0x4e, 0xee,
- 0xff, 0x72, 0xe0, 0x7c, 0x97, 0xfe, 0xae, 0xf8, 0x71, 0x82, 0x5e, 0xea, 0xe8, 0xf3, 0x74, 0x6f,
- 0x7d, 0xa6, 0xb5, 0x59, 0x8f, 0x95, 0x40, 0x90, 0x10, 0xad, 0xbf, 0x1f, 0x83, 0xa2, 0x9f, 0x90,
- 0xa6, 0x34, 0x43, 0x5b, 0x30, 0x18, 0x75, 0xe9, 0xcb, 0xec, 0x98, 0x8c, 0xf1, 0x5b, 0xa2, 0xfc,
- 0x30, 0x67, 0xeb, 0x6e, 0xc3, 0xc0, 0x5c, 0xd8, 0x68, 0x37, 0x83, 0xde, 0x22, 0x65, 0x92, 0xdd,
- 0x16, 0xc9, 0xee, 0x91, 0x4c, 0xfd, 0x67, 0x25, 0xd2, 0x70, 0xd4, 0x97, 0x6f, 0x38, 0x72, 0xff,
- 0xb9, 0x03, 0x74, 0x55, 0x55, 0x7d, 0xe1, 0x49, 0xe4, 0xe4, 0x38, 0xc3, 0x87, 0x75, 0x72, 0x77,
- 0xf6, 0xa6, 0xc6, 0x14, 0xa2, 0x46, 0xff, 0xc3, 0x30, 0x10, 0xb3, 0x23, 0xb9, 0x68, 0xc3, 0x82,
- 0xd4, 0x9f, 0xf9, 0x41, 0xfd, 0xce, 0xde, 0x54, 0x4f, 0x61, 0x9b, 0xd3, 0x8a, 0xb6, 0x70, 0x7a,
- 0x0a, 0xaa, 0x54, 0xe1, 0x6b, 0x92, 0x38, 0xf6, 0x6a, 0xf2, 0x84, 0xa7, 0x14, 0xbe, 0x55, 0x0e,
- 0xc6, 0xb2, 0xdc, 0xfd, 0x8a, 0x03, 0x63, 0x6a, 0xf3, 0xa2, 0xea, 0x3b, 0xba, 0xaa, 0x6f, 0x73,
- 0x7c, 0xa6, 0x3c, 0xdc, 0x45, 0xe2, 0x88, 0x8d, 0x7c, 0xff, 0x5d, 0xf0, 0xdd, 0x30, 0x5a, 0x25,
- 0x2d, 0x12, 0x54, 0x49, 0x50, 0xa1, 0xc7, 0x6f, 0x3a, 0x43, 0x86, 0x67, 0x27, 0xe8, 0x79, 0x73,
- 0x5e, 0x83, 0x63, 0x03, 0xcb, 0xfd, 0x96, 0x03, 0x0f, 0x2a, 0x72, 0x65, 0x92, 0x60, 0x92, 0x44,
- 0xbb, 0x2a, 0x4c, 0xf3, 0x60, 0xbb, 0xd5, 0x0d, 0xaa, 0xff, 0x26, 0x11, 0x67, 0x7e, 0xb8, 0xed,
- 0x6a, 0x84, 0x6b, 0xcb, 0x8c, 0x08, 0x96, 0xd4, 0xdc, 0x5f, 0xed, 0x83, 0xd3, 0x7a, 0x23, 0x95,
- 0x80, 0xf9, 0xa4, 0x03, 0xa0, 0x46, 0x80, 0x6e, 0xc8, 0x7d, 0x76, 0x7c, 0x57, 0xc6, 0x97, 0x4a,
- 0x45, 0x90, 0x02, 0xc7, 0x58, 0x63, 0x8b, 0x5e, 0x80, 0xd1, 0x1d, 0xba, 0x28, 0xc8, 0x2a, 0x55,
- 0x17, 0xe2, 0x52, 0x1f, 0x6b, 0xc6, 0x54, 0xde, 0xc7, 0xbc, 0x9e, 0xe2, 0xa5, 0xe6, 0x00, 0x0d,
- 0x18, 0x63, 0x83, 0x14, 0x3d, 0xe9, 0x8c, 0x45, 0xfa, 0x27, 0x11, 0x36, 0xf1, 0x0f, 0x59, 0xec,
- 0x63, 0xf6, 0xab, 0xcf, 0x9e, 0xbc, 0xbd, 0x37, 0x35, 0x66, 0x80, 0xb0, 0xd9, 0x08, 0xf7, 0x05,
- 0x60, 0x63, 0xe1, 0x07, 0x6d, 0xb2, 0x16, 0xa0, 0x47, 0xa5, 0x8d, 0x8e, 0xfb, 0x55, 0x94, 0xe4,
- 0xd0, 0xed, 0x74, 0xf4, 0x2c, 0xbb, 0xe5, 0xf9, 0x0d, 0x16, 0xbe, 0x48, 0xb1, 0xd4, 0x59, 0x76,
- 0x81, 0x41, 0xb1, 0x28, 0x75, 0xa7, 0x61, 0x70, 0x8e, 0xf6, 0x9d, 0x44, 0x94, 0xae, 0x1e, 0x75,
- 0x3c, 0x66, 0x44, 0x1d, 0xcb, 0xe8, 0xe2, 0x0d, 0x38, 0x33, 0x17, 0x11, 0x2f, 0x21, 0xe5, 0x67,
- 0x66, 0xdb, 0x95, 0x6d, 0x92, 0xf0, 0xd0, 0xae, 0x18, 0xbd, 0x0f, 0xc6, 0x42, 0xb6, 0x65, 0xac,
- 0x84, 0x95, 0x6d, 0x3f, 0xa8, 0x09, 0x93, 0xeb, 0x19, 0x41, 0x65, 0x6c, 0x4d, 0x2f, 0xc4, 0x26,
- 0xae, 0xfb, 0xef, 0x0b, 0x30, 0x3a, 0x17, 0x85, 0x81, 0x14, 0x8b, 0xc7, 0xb0, 0x95, 0x25, 0xc6,
- 0x56, 0x66, 0xc1, 0xdd, 0xa9, 0xb7, 0xbf, 0xdb, 0x76, 0x86, 0x5e, 0x57, 0x22, 0xb2, 0xcf, 0xd6,
- 0x11, 0xc4, 0xe0, 0xcb, 0x68, 0xa7, 0x1f, 0xdb, 0x14, 0xa0, 0xee, 0x7f, 0x70, 0x60, 0x42, 0x47,
- 0x3f, 0x86, 0x1d, 0x34, 0x36, 0x77, 0xd0, 0xab, 0x76, 0xfb, 0xdb, 0x65, 0xdb, 0x7c, 0x7b, 0xd0,
- 0xec, 0x27, 0xf3, 0x75, 0x7f, 0xcd, 0x81, 0xd1, 0x9b, 0x1a, 0x40, 0x74, 0xd6, 0xb6, 0x12, 0xf3,
- 0x0e, 0x29, 0x66, 0x74, 0xe8, 0x9d, 0xcc, 0x6f, 0x6c, 0xb4, 0x84, 0xca, 0xfd, 0xb8, 0x52, 0x27,
- 0xd5, 0x76, 0x43, 0x6e, 0xdf, 0x6a, 0x48, 0xcb, 0x02, 0x8e, 0x15, 0x06, 0x7a, 0x09, 0x4e, 0x56,
- 0xc2, 0xa0, 0xd2, 0x8e, 0x22, 0x12, 0x54, 0x76, 0xd7, 0xd9, 0x1d, 0x09, 0xb1, 0x21, 0x4e, 0x8b,
- 0x6a, 0x27, 0xe7, 0xb2, 0x08, 0x77, 0xf2, 0x80, 0xb8, 0x93, 0x10, 0x77, 0x16, 0xc4, 0x74, 0xcb,
- 0x12, 0x07, 0x2e, 0xcd, 0x59, 0xc0, 0xc0, 0x58, 0x96, 0xa3, 0x6b, 0x70, 0x2e, 0x4e, 0xbc, 0x28,
- 0xf1, 0x83, 0xda, 0x3c, 0xf1, 0xaa, 0x0d, 0x3f, 0xa0, 0x47, 0x89, 0x30, 0xa8, 0x72, 0x57, 0x62,
- 0xdf, 0xec, 0xf9, 0xdb, 0x7b, 0x53, 0xe7, 0xca, 0xf9, 0x28, 0xb8, 0x5b, 0x5d, 0xf4, 0x61, 0x98,
- 0x14, 0xee, 0x88, 0xad, 0x76, 0xe3, 0xb9, 0x70, 0x33, 0xbe, 0xe2, 0xc7, 0xf4, 0x1c, 0xbf, 0xe2,
- 0x37, 0xfd, 0x84, 0x39, 0x0c, 0x8b, 0xb3, 0x17, 0x6e, 0xef, 0x4d, 0x4d, 0x96, 0xbb, 0x62, 0xe1,
- 0x7d, 0x28, 0x20, 0x0c, 0x67, 0xb9, 0xf0, 0xeb, 0xa0, 0x3d, 0xc8, 0x68, 0x4f, 0xde, 0xde, 0x9b,
- 0x3a, 0xbb, 0x90, 0x8b, 0x81, 0xbb, 0xd4, 0xa4, 0x5f, 0x30, 0xf1, 0x9b, 0xe4, 0xd5, 0x30, 0x20,
- 0x2c, 0x50, 0x45, 0xfb, 0x82, 0x1b, 0x02, 0x8e, 0x15, 0x06, 0x7a, 0x39, 0x9d, 0x89, 0x74, 0xb9,
- 0x88, 0x80, 0x93, 0x83, 0x4b, 0x38, 0x76, 0x34, 0xb9, 0xa1, 0x51, 0x62, 0x91, 0x94, 0x06, 0x6d,
- 0xf4, 0x29, 0x07, 0x46, 0xe3, 0x24, 0x54, 0xf7, 0x1a, 0x44, 0xc4, 0x89, 0x85, 0x69, 0x5f, 0xd6,
- 0xa8, 0x72, 0xc5, 0x47, 0x87, 0x60, 0x83, 0x2b, 0x7a, 0x27, 0x0c, 0xcb, 0x09, 0x1c, 0x97, 0x46,
- 0x98, 0xae, 0xc4, 0x8e, 0x71, 0x72, 0x7e, 0xc7, 0x38, 0x2d, 0xa7, 0xaa, 0xec, 0xcd, 0x3a, 0x09,
- 0x58, 0xcc, 0xad, 0xa6, 0xca, 0xde, 0xa8, 0x93, 0x00, 0xb3, 0x12, 0xf7, 0xc7, 0x7d, 0x80, 0x3a,
- 0x05, 0x1f, 0x5a, 0x86, 0x01, 0xaf, 0x92, 0xf8, 0x3b, 0x32, 0xde, 0xf0, 0xd1, 0x3c, 0xa5, 0x80,
- 0x0f, 0x20, 0x26, 0x5b, 0x84, 0xce, 0x7b, 0x92, 0x4a, 0xcb, 0x19, 0x56, 0x15, 0x0b, 0x12, 0x28,
- 0x84, 0x93, 0x0d, 0x2f, 0x4e, 0x64, 0x0b, 0xab, 0xf4, 0x43, 0x8a, 0xed, 0xe2, 0xe7, 0x7b, 0xfb,
- 0x54, 0xb4, 0xc6, 0xec, 0x19, 0xba, 0x1e, 0x57, 0xb2, 0x84, 0x70, 0x27, 0x6d, 0xf4, 0x71, 0xa6,
- 0x5d, 0x71, 0xd5, 0x57, 0xaa, 0x35, 0xcb, 0x56, 0x34, 0x0f, 0x4e, 0xd3, 0xd0, 0xac, 0x04, 0x1b,
- 0xac, 0xb1, 0x44, 0x17, 0x61, 0x98, 0xad, 0x1b, 0x52, 0x25, 0x7c, 0xf5, 0xf7, 0xa5, 0x4a, 0x70,
- 0x59, 0x16, 0xe0, 0x14, 0x47, 0xd3, 0x32, 0xf8, 0x82, 0xef, 0xa2, 0x65, 0xa0, 0x67, 0xa1, 0xd8,
- 0xaa, 0x7b, 0xb1, 0x8c, 0x61, 0x77, 0xa5, 0xd4, 0x5e, 0xa7, 0x40, 0x26, 0x9a, 0xb4, 0x6f, 0xc9,
- 0x80, 0x98, 0x57, 0x70, 0xff, 0x05, 0xc0, 0xe0, 0xfc, 0xcc, 0xe2, 0x86, 0x17, 0x6f, 0xf7, 0x70,
- 0x06, 0xa2, 0xcb, 0x50, 0x28, 0xab, 0x59, 0x41, 0x2a, 0x95, 0x58, 0xac, 0x30, 0x50, 0x00, 0x03,
- 0x7e, 0x40, 0x25, 0x4f, 0x69, 0xdc, 0x96, 0x9f, 0x41, 0x9d, 0xe7, 0x98, 0x21, 0x68, 0x89, 0x51,
- 0xc7, 0x82, 0x0b, 0x7a, 0x1d, 0x86, 0x3d, 0x79, 0x85, 0x48, 0xec, 0xff, 0xcb, 0x36, 0x0c, 0xe8,
- 0x82, 0xa4, 0x1e, 0xc2, 0x24, 0x40, 0x38, 0x65, 0x88, 0x3e, 0xe1, 0xc0, 0x88, 0xec, 0x3a, 0x26,
- 0x5b, 0xc2, 0xb7, 0xbd, 0x6a, 0xaf, 0xcf, 0x98, 0x6c, 0xf1, 0xf8, 0x16, 0x0d, 0x80, 0x75, 0x96,
- 0x1d, 0x67, 0xa6, 0x62, 0x2f, 0x67, 0x26, 0x74, 0x13, 0x86, 0x6f, 0xfa, 0x49, 0x9d, 0xed, 0xf0,
- 0xc2, 0xa7, 0xb6, 0x70, 0xef, 0xad, 0xa6, 0xe4, 0xd2, 0x11, 0xbb, 0x21, 0x19, 0xe0, 0x94, 0x17,
- 0x5d, 0x0e, 0xf4, 0x07, 0xbb, 0x82, 0xc5, 0xf6, 0x86, 0x61, 0xb3, 0x02, 0x2b, 0xc0, 0x29, 0x0e,
- 0x1d, 0xe2, 0x51, 0xfa, 0xab, 0x4c, 0x5e, 0x69, 0x53, 0xd1, 0x22, 0x62, 0x16, 0x2d, 0xcc, 0x2b,
- 0x49, 0x91, 0x0f, 0xd6, 0x0d, 0x8d, 0x07, 0x36, 0x38, 0x2a, 0xd1, 0x39, 0xdc, 0x4d, 0x74, 0xa2,
- 0xd7, 0xf9, 0x19, 0x8e, 0x1f, 0x26, 0xc4, 0x6e, 0xb0, 0x62, 0xe7, 0x7c, 0xc3, 0x69, 0xf2, 0x6b,
- 0x0d, 0xe9, 0x6f, 0xac, 0xf1, 0xa3, 0x12, 0x23, 0x0c, 0x2e, 0xdf, 0xf2, 0x13, 0x71, 0x19, 0x43,
- 0x49, 0x8c, 0x35, 0x06, 0xc5, 0xa2, 0x94, 0xc7, 0x6e, 0xd0, 0x49, 0x10, 0x8b, 0x5d, 0x40, 0x8b,
- 0xdd, 0x60, 0x60, 0x2c, 0xcb, 0xd1, 0xdf, 0x75, 0xa0, 0x58, 0x0f, 0xc3, 0xed, 0xb8, 0x34, 0xc6,
- 0x26, 0x87, 0x05, 0x9d, 0x5a, 0x48, 0x9c, 0xe9, 0x2b, 0x94, 0xac, 0x79, 0xbd, 0xac, 0xc8, 0x60,
- 0x77, 0xf6, 0xa6, 0xc6, 0x57, 0xfc, 0x2d, 0x52, 0xd9, 0xad, 0x34, 0x08, 0x83, 0xbc, 0xf9, 0xb6,
- 0x06, 0xb9, 0xbc, 0x43, 0x82, 0x04, 0xf3, 0x56, 0x4d, 0x7e, 0xde, 0x01, 0x48, 0x09, 0xe5, 0x38,
- 0x49, 0x89, 0x19, 0x56, 0x60, 0xe1, 0x40, 0x6d, 0x34, 0x4d, 0xf7, 0xba, 0xfe, 0x2b, 0x07, 0x46,
- 0x68, 0xe7, 0xa4, 0x08, 0x7c, 0x1c, 0x06, 0x12, 0x2f, 0xaa, 0x11, 0xe9, 0x28, 0x50, 0x9f, 0x63,
- 0x83, 0x41, 0xb1, 0x28, 0x45, 0x01, 0x14, 0x13, 0x2f, 0xde, 0x96, 0x6a, 0xfc, 0x92, 0xb5, 0x21,
- 0x4e, 0x35, 0x78, 0xfa, 0x2b, 0xc6, 0x9c, 0x0d, 0x7a, 0x02, 0x86, 0xe8, 0xd6, 0xb1, 0xe0, 0xc5,
- 0x32, 0x76, 0x67, 0x94, 0x0a, 0xf1, 0x05, 0x01, 0xc3, 0xaa, 0xd4, 0xfd, 0xf5, 0x02, 0xf4, 0xcf,
- 0xf3, 0x03, 0xdd, 0x40, 0x1c, 0xb6, 0xa3, 0x0a, 0x11, 0x8a, 0xbd, 0x85, 0x39, 0x4d, 0xe9, 0x96,
- 0x19, 0x4d, 0xed, 0x48, 0xc5, 0x7e, 0x63, 0xc1, 0x0b, 0x7d, 0xd9, 0x81, 0xf1, 0x24, 0xf2, 0x82,
- 0x78, 0x8b, 0xb9, 0x64, 0xfc, 0x30, 0x10, 0x43, 0x64, 0x61, 0x16, 0x6e, 0x18, 0x74, 0xcb, 0x09,
- 0x69, 0xa5, 0x9e, 0x21, 0xb3, 0x0c, 0x67, 0xda, 0xe0, 0xfe, 0x86, 0x03, 0x90, 0xb6, 0x1e, 0x7d,
- 0xce, 0x81, 0x31, 0x4f, 0x8f, 0x19, 0x15, 0x63, 0xb4, 0x66, 0xcf, 0x7f, 0xcb, 0xc8, 0x72, 0x5b,
- 0x86, 0x01, 0xc2, 0x26, 0x63, 0xf7, 0x3d, 0x50, 0x64, 0xab, 0x83, 0x1d, 0x7a, 0x84, 0xed, 0x3b,
- 0x6b, 0xec, 0x92, 0x36, 0x71, 0xac, 0x30, 0xdc, 0x97, 0x60, 0xfc, 0xf2, 0x2d, 0x52, 0x69, 0x27,
- 0x61, 0xc4, 0x2d, 0xff, 0x5d, 0xee, 0x08, 0x39, 0x87, 0xba, 0x23, 0xf4, 0x5d, 0x07, 0x46, 0xb4,
- 0x00, 0x42, 0xba, 0x53, 0xd7, 0xe6, 0xca, 0xdc, 0xc0, 0x21, 0x86, 0x6a, 0xd9, 0x4a, 0x88, 0x22,
- 0x27, 0x99, 0x6e, 0x23, 0x0a, 0x84, 0x53, 0x86, 0x77, 0x09, 0xf0, 0x73, 0x7f, 0xdf, 0x81, 0x33,
- 0xb9, 0xd1, 0x8e, 0xf7, 0xb9, 0xd9, 0x86, 0x93, 0xbd, 0xd0, 0x83, 0x93, 0xfd, 0xb7, 0x1d, 0x48,
- 0x29, 0x51, 0x51, 0xb4, 0x99, 0xb6, 0x5c, 0x13, 0x45, 0x82, 0x93, 0x28, 0x45, 0xaf, 0xc3, 0x39,
- 0xf3, 0x0b, 0x1e, 0xd2, 0xdf, 0xc2, 0x0f, 0xa7, 0xf9, 0x94, 0x70, 0x37, 0x16, 0xee, 0xd7, 0x1d,
- 0x28, 0x2e, 0x7a, 0xed, 0x1a, 0xe9, 0xc9, 0x5c, 0x46, 0xe5, 0x58, 0x44, 0xbc, 0x46, 0x22, 0x8f,
- 0x0e, 0x42, 0x8e, 0x61, 0x01, 0xc3, 0xaa, 0x14, 0xcd, 0xc0, 0x70, 0xd8, 0x22, 0x86, 0x8f, 0xf0,
- 0x51, 0x39, 0x7a, 0x6b, 0xb2, 0x80, 0x6e, 0x3b, 0x8c, 0xbb, 0x82, 0xe0, 0xb4, 0x96, 0xfb, 0x8d,
- 0x01, 0x18, 0xd1, 0xee, 0xc5, 0x50, 0x5d, 0x20, 0x22, 0xad, 0x30, 0xab, 0x2f, 0xd3, 0x09, 0x83,
- 0x59, 0x09, 0x5d, 0x83, 0x11, 0xd9, 0xf1, 0x63, 0x2e, 0xb6, 0x8c, 0x35, 0x88, 0x05, 0x1c, 0x2b,
- 0x0c, 0x34, 0x05, 0xc5, 0x2a, 0x69, 0x25, 0x75, 0xd6, 0xbc, 0x7e, 0x1e, 0x1c, 0x38, 0x4f, 0x01,
- 0x98, 0xc3, 0x29, 0xc2, 0x16, 0x49, 0x2a, 0x75, 0x66, 0x19, 0x16, 0xd1, 0x83, 0x0b, 0x14, 0x80,
- 0x39, 0x3c, 0xc7, 0x8b, 0x59, 0x3c, 0x7a, 0x2f, 0xe6, 0x80, 0x65, 0x2f, 0x26, 0x6a, 0xc1, 0xa9,
- 0x38, 0xae, 0xaf, 0x47, 0xfe, 0x8e, 0x97, 0x90, 0x74, 0xf6, 0x0d, 0x1e, 0x84, 0xcf, 0x39, 0x76,
- 0x53, 0xbd, 0x7c, 0x25, 0x4b, 0x05, 0xe7, 0x91, 0x46, 0x65, 0x38, 0xe3, 0x07, 0x31, 0xa9, 0xb4,
- 0x23, 0xb2, 0x54, 0x0b, 0xc2, 0x88, 0x5c, 0x09, 0x63, 0x4a, 0x4e, 0xdc, 0xb3, 0x55, 0xf1, 0xb4,
- 0x4b, 0x79, 0x48, 0x38, 0xbf, 0x2e, 0x5a, 0x84, 0x93, 0x55, 0x3f, 0xf6, 0x36, 0x1b, 0xa4, 0xdc,
- 0xde, 0x6c, 0x86, 0xfc, 0x68, 0x3e, 0xcc, 0x08, 0x3e, 0x28, 0xed, 0x48, 0xf3, 0x59, 0x04, 0xdc,
- 0x59, 0x07, 0x3d, 0x0b, 0xa3, 0xb1, 0x1f, 0xd4, 0x1a, 0x64, 0x36, 0xf2, 0x82, 0x4a, 0x5d, 0x5c,
- 0xd0, 0x55, 0xf6, 0xf6, 0xb2, 0x56, 0x86, 0x0d, 0x4c, 0xb6, 0xe6, 0x79, 0x9d, 0x8c, 0x36, 0x28,
- 0xb0, 0x45, 0x29, 0x9a, 0x81, 0x13, 0xb2, 0x0f, 0xe5, 0x6d, 0xbf, 0xb5, 0xb1, 0x52, 0x66, 0x5a,
- 0xe1, 0x50, 0x1a, 0x2d, 0xb4, 0x64, 0x16, 0xe3, 0x2c, 0xbe, 0xfb, 0x43, 0x07, 0x46, 0xf5, 0x70,
- 0x78, 0xaa, 0xac, 0x43, 0x7d, 0x7e, 0xa1, 0xcc, 0xb7, 0x13, 0x7b, 0x4a, 0xc3, 0x15, 0x45, 0x33,
- 0x3d, 0x6f, 0xa7, 0x30, 0xac, 0xf1, 0xec, 0xe1, 0x72, 0xfb, 0xa3, 0x50, 0xdc, 0x0a, 0xa9, 0x4e,
- 0xd3, 0x67, 0xda, 0xfa, 0x17, 0x28, 0x10, 0xf3, 0x32, 0xf7, 0xbf, 0x39, 0x70, 0x36, 0x3f, 0xd2,
- 0xff, 0x67, 0xa1, 0x93, 0x97, 0x00, 0x68, 0x57, 0x8c, 0x7d, 0x41, 0x4b, 0x6f, 0x21, 0x4b, 0xb0,
- 0x86, 0xd5, 0x5b, 0xb7, 0xff, 0x65, 0x01, 0x34, 0x9e, 0xe8, 0x0b, 0x0e, 0x8c, 0x51, 0xb6, 0xcb,
- 0xd1, 0xa6, 0xd1, 0xdb, 0x35, 0x3b, 0xbd, 0x55, 0x64, 0x53, 0x97, 0x86, 0x01, 0xc6, 0x26, 0x73,
- 0xf4, 0x4e, 0x18, 0xf6, 0xaa, 0xd5, 0x88, 0xc4, 0xb1, 0x72, 0x0e, 0x32, 0x83, 0xd7, 0x8c, 0x04,
- 0xe2, 0xb4, 0x9c, 0xca, 0xe1, 0x7a, 0x75, 0x2b, 0xa6, 0xa2, 0x4d, 0xc8, 0x7e, 0x25, 0x87, 0x29,
- 0x13, 0x0a, 0xc7, 0x0a, 0x03, 0x5d, 0x87, 0xb3, 0x55, 0x2f, 0xf1, 0xb8, 0x0a, 0x48, 0xa2, 0xf5,
- 0x28, 0x4c, 0x48, 0x85, 0xed, 0x1b, 0x3c, 0x88, 0xf5, 0x82, 0xa8, 0x7b, 0x76, 0x3e, 0x17, 0x0b,
- 0x77, 0xa9, 0xed, 0xfe, 0x4a, 0x3f, 0x98, 0x7d, 0x42, 0x55, 0x38, 0xb1, 0x1d, 0x6d, 0xce, 0xb1,
- 0x98, 0x8d, 0xc3, 0xc4, 0x4e, 0xb0, 0x98, 0x86, 0x65, 0x93, 0x02, 0xce, 0x92, 0x14, 0x5c, 0x96,
- 0xc9, 0x6e, 0xe2, 0x6d, 0x1e, 0x3a, 0x72, 0x62, 0xd9, 0xa4, 0x80, 0xb3, 0x24, 0xd1, 0x7b, 0x60,
- 0x64, 0x3b, 0xda, 0x94, 0xbb, 0x47, 0x36, 0x0c, 0x67, 0x39, 0x2d, 0xc2, 0x3a, 0x1e, 0xfd, 0x34,
- 0xdb, 0xd1, 0x26, 0xdd, 0xb0, 0x65, 0x12, 0x09, 0xf5, 0x69, 0x96, 0x05, 0x1c, 0x2b, 0x0c, 0xd4,
- 0x02, 0xb4, 0x2d, 0x47, 0x4f, 0x45, 0xa8, 0x88, 0x4d, 0xae, 0xf7, 0x00, 0x17, 0x76, 0x35, 0x60,
- 0xb9, 0x83, 0x0e, 0xce, 0xa1, 0x8d, 0x5e, 0x80, 0x73, 0xdb, 0xd1, 0xa6, 0xd0, 0x63, 0xd6, 0x23,
- 0x3f, 0xa8, 0xf8, 0x2d, 0x23, 0x61, 0xc4, 0x94, 0x68, 0xee, 0xb9, 0xe5, 0x7c, 0x34, 0xdc, 0xad,
- 0xbe, 0xfb, 0x3b, 0xfd, 0xc0, 0xae, 0xba, 0x52, 0x31, 0xdd, 0x24, 0x49, 0x3d, 0xac, 0x66, 0x55,
- 0xb3, 0x55, 0x06, 0xc5, 0xa2, 0x54, 0x06, 0xc0, 0x16, 0xba, 0x04, 0xc0, 0xde, 0x84, 0xc1, 0x3a,
- 0xf1, 0xaa, 0x24, 0x92, 0xc6, 0xcd, 0x15, 0x3b, 0x97, 0x73, 0xaf, 0x30, 0xa2, 0xa9, 0x85, 0x80,
- 0xff, 0x8e, 0xb1, 0xe4, 0x86, 0xde, 0x0b, 0xe3, 0x54, 0xc7, 0x0a, 0xdb, 0x89, 0xf4, 0x4f, 0x70,
- 0xe3, 0x26, 0xdb, 0xec, 0x37, 0x8c, 0x12, 0x9c, 0xc1, 0x44, 0xf3, 0x30, 0x21, 0x7c, 0x09, 0xca,
- 0x68, 0x2a, 0x06, 0x56, 0x65, 0xf2, 0x28, 0x67, 0xca, 0x71, 0x47, 0x0d, 0x16, 0xc0, 0x18, 0x56,
- 0xb9, 0x3b, 0x59, 0x0f, 0x60, 0x0c, 0xab, 0xbb, 0x98, 0x95, 0xa0, 0x57, 0x61, 0x88, 0xfe, 0x5d,
- 0x88, 0xc2, 0xa6, 0x30, 0x1b, 0xad, 0xdb, 0x19, 0x1d, 0xca, 0x43, 0x1c, 0x62, 0x99, 0xee, 0x39,
- 0x2b, 0xb8, 0x60, 0xc5, 0x8f, 0x1e, 0xa5, 0xf4, 0xed, 0xf2, 0x3a, 0x89, 0xfc, 0xad, 0x5d, 0xa6,
- 0xcf, 0x0c, 0xa5, 0x47, 0xa9, 0xa5, 0x0e, 0x0c, 0x9c, 0x53, 0xcb, 0xfd, 0x42, 0x01, 0x46, 0xf5,
- 0x1b, 0xd3, 0x77, 0x8b, 0x8a, 0x8e, 0xd3, 0x49, 0xc1, 0x0f, 0xce, 0x57, 0x2c, 0x74, 0xfb, 0x6e,
- 0x13, 0xa2, 0x0e, 0xfd, 0x5e, 0x5b, 0x28, 0xb2, 0x56, 0xec, 0x73, 0xac, 0xc7, 0xed, 0xa4, 0xce,
- 0xaf, 0xd6, 0xb1, 0x78, 0x65, 0xc6, 0xc1, 0xfd, 0x74, 0x1f, 0x0c, 0xc9, 0x42, 0xf4, 0x29, 0x07,
- 0x20, 0x8d, 0x1b, 0x13, 0xa2, 0x74, 0xdd, 0x46, 0x50, 0x91, 0x1e, 0xf2, 0xa6, 0x99, 0xf9, 0x15,
- 0x1c, 0x6b, 0x7c, 0x51, 0x02, 0x03, 0x21, 0x6d, 0xdc, 0x25, 0x7b, 0xb7, 0xfe, 0xd7, 0x28, 0xe3,
- 0x4b, 0x8c, 0x7b, 0x6a, 0xd1, 0x63, 0x30, 0x2c, 0x78, 0xd1, 0xc3, 0xe9, 0xa6, 0x0c, 0x67, 0xb4,
- 0x67, 0xfd, 0x56, 0x11, 0x92, 0xe9, 0x59, 0x53, 0x81, 0x70, 0xca, 0xd0, 0x7d, 0x1a, 0xc6, 0xcd,
- 0xc5, 0x40, 0x0f, 0x2b, 0x9b, 0xbb, 0x09, 0xe1, 0xa6, 0x90, 0x51, 0x7e, 0x58, 0x99, 0xa5, 0x00,
- 0xcc, 0xe1, 0xee, 0x0f, 0x1c, 0x80, 0x54, 0xbc, 0xf4, 0xe0, 0x7d, 0x78, 0x54, 0xb7, 0xe3, 0x75,
- 0x3b, 0x11, 0x7e, 0x1c, 0x86, 0xd9, 0x3f, 0x6c, 0xa1, 0xf7, 0xd9, 0x0a, 0x3e, 0x48, 0xdb, 0x29,
- 0x96, 0x3a, 0xd3, 0x35, 0xae, 0x4b, 0x46, 0x38, 0xe5, 0xe9, 0x86, 0x30, 0x91, 0xc5, 0x46, 0x1f,
- 0x82, 0xd1, 0x58, 0x6e, 0xab, 0xe9, 0xfd, 0xbf, 0x1e, 0xb7, 0x5f, 0xee, 0xfa, 0xd3, 0xaa, 0x63,
- 0x83, 0x98, 0xbb, 0x06, 0x03, 0x56, 0x87, 0xd0, 0xfd, 0x8e, 0x03, 0xc3, 0xcc, 0xfb, 0x5a, 0x8b,
- 0xbc, 0x66, 0x5a, 0xa5, 0x6f, 0x9f, 0x51, 0x8f, 0x61, 0x90, 0x9b, 0x0f, 0x64, 0xd4, 0x92, 0x05,
- 0x29, 0xc3, 0x93, 0xf5, 0xa5, 0x52, 0x86, 0xdb, 0x29, 0x62, 0x2c, 0x39, 0xb9, 0x9f, 0x29, 0xc0,
- 0xc0, 0x52, 0xd0, 0x6a, 0xff, 0xa5, 0x4f, 0x18, 0xb7, 0x0a, 0xfd, 0x4b, 0x09, 0x69, 0x9a, 0x79,
- 0x0d, 0x47, 0x67, 0x1f, 0xd3, 0x73, 0x1a, 0x96, 0xcc, 0x9c, 0x86, 0xd8, 0xbb, 0x29, 0x83, 0xfa,
- 0x84, 0xf9, 0x3a, 0xbd, 0x03, 0xf9, 0x14, 0x0c, 0xaf, 0x78, 0x9b, 0xa4, 0xb1, 0x4c, 0x76, 0xd9,
- 0x8d, 0x45, 0x1e, 0x60, 0xe2, 0xa4, 0x36, 0x07, 0x23, 0x18, 0x64, 0x1e, 0xc6, 0x19, 0xb6, 0x5a,
- 0x0c, 0xf4, 0x44, 0x42, 0xd2, 0xa4, 0x50, 0x8e, 0x79, 0x22, 0xd1, 0x12, 0x42, 0x69, 0x58, 0xee,
- 0x34, 0x8c, 0xa4, 0x54, 0x7a, 0xe0, 0xfa, 0xd3, 0x02, 0x8c, 0x19, 0x56, 0x78, 0xc3, 0x37, 0xe9,
- 0xdc, 0xd5, 0x37, 0x69, 0xf8, 0x0a, 0x0b, 0xf7, 0xdb, 0x57, 0xd8, 0x77, 0xfc, 0xbe, 0x42, 0xf3,
- 0x23, 0xf5, 0xf7, 0xf4, 0x91, 0x1a, 0xd0, 0xbf, 0xe2, 0x07, 0xdb, 0xbd, 0xc9, 0x99, 0xb8, 0x12,
- 0xb6, 0x3a, 0xe4, 0x4c, 0x99, 0x02, 0x31, 0x2f, 0x93, 0x9a, 0x4b, 0x5f, 0xbe, 0xe6, 0xe2, 0x7e,
- 0xca, 0x81, 0xd1, 0x55, 0x2f, 0xf0, 0xb7, 0x48, 0x9c, 0xb0, 0x79, 0x95, 0x1c, 0xe9, 0xcd, 0xb5,
- 0xd1, 0x2e, 0x39, 0x18, 0xde, 0x74, 0xe0, 0xe4, 0x2a, 0x69, 0x86, 0xfe, 0xab, 0x5e, 0x1a, 0x33,
- 0x4b, 0xdb, 0x5e, 0xf7, 0x13, 0x11, 0x22, 0xa8, 0xda, 0x7e, 0xc5, 0x4f, 0x30, 0x85, 0xdf, 0xc5,
- 0xc4, 0xcc, 0xee, 0x84, 0xd0, 0x03, 0x9a, 0x76, 0x9b, 0x32, 0x8d, 0x86, 0x95, 0x05, 0x38, 0xc5,
- 0x71, 0x7f, 0xd7, 0x81, 0x41, 0xde, 0x08, 0x15, 0x66, 0xec, 0x74, 0xa1, 0x5d, 0x87, 0x22, 0xab,
- 0x27, 0x66, 0xf5, 0xa2, 0x05, 0xf5, 0x87, 0x92, 0xe3, 0x6b, 0x90, 0xfd, 0x8b, 0x39, 0x03, 0x76,
- 0x6c, 0xf1, 0x6e, 0xcd, 0xa8, 0x70, 0xe1, 0xf4, 0xd8, 0xc2, 0xa0, 0x58, 0x94, 0xba, 0xdf, 0xe8,
- 0x83, 0x21, 0x95, 0x7a, 0x8c, 0x25, 0x86, 0x08, 0x82, 0x30, 0xf1, 0x78, 0x18, 0x06, 0x97, 0xd5,
- 0x1f, 0xb2, 0x97, 0xfa, 0x6c, 0x7a, 0x26, 0xa5, 0xce, 0x5d, 0x8b, 0xea, 0x10, 0xaa, 0x95, 0x60,
- 0xbd, 0x11, 0xe8, 0x63, 0x30, 0xd0, 0xa0, 0xd2, 0x47, 0x8a, 0xee, 0xeb, 0x16, 0x9b, 0xc3, 0xc4,
- 0x9a, 0x68, 0x89, 0x1a, 0x21, 0x0e, 0xc4, 0x82, 0xeb, 0xe4, 0xfb, 0x61, 0x22, 0xdb, 0xea, 0xbb,
- 0x5d, 0xf6, 0x1c, 0xd6, 0xaf, 0x8a, 0xfe, 0x55, 0x21, 0x3d, 0x0f, 0x5e, 0xd5, 0x7d, 0x1e, 0x46,
- 0x56, 0x49, 0x12, 0xf9, 0x15, 0x46, 0xe0, 0x6e, 0x93, 0xab, 0x27, 0xfd, 0xe1, 0xb3, 0x6c, 0xb2,
- 0x52, 0x9a, 0x31, 0x7a, 0x1d, 0xa0, 0x15, 0x85, 0xf4, 0xfc, 0x4a, 0xda, 0xf2, 0x63, 0x5b, 0xd0,
- 0x87, 0xd7, 0x15, 0x4d, 0xee, 0x0d, 0x4f, 0x7f, 0x63, 0x8d, 0x9f, 0xfb, 0x22, 0x14, 0x57, 0xdb,
- 0x09, 0xb9, 0xd5, 0x83, 0xc4, 0x3a, 0x68, 0xf6, 0x03, 0xf7, 0x43, 0x30, 0xca, 0x68, 0x5f, 0x09,
- 0x1b, 0x74, 0x5b, 0xa5, 0x43, 0xd3, 0xa4, 0xbf, 0xb3, 0xfe, 0x0a, 0x86, 0x84, 0x79, 0x19, 0x5d,
- 0x32, 0xf5, 0xb0, 0x51, 0x55, 0x37, 0xc1, 0xd4, 0x84, 0xb8, 0xc2, 0xa0, 0x58, 0x94, 0xba, 0x9f,
- 0x2c, 0xc0, 0x08, 0xab, 0x28, 0xc4, 0xcd, 0x2e, 0x0c, 0xd6, 0x39, 0x1f, 0x31, 0x86, 0x16, 0xe2,
- 0xcb, 0xf4, 0xd6, 0x6b, 0x67, 0x39, 0x0e, 0xc0, 0x92, 0x1f, 0x65, 0x7d, 0xd3, 0xf3, 0x13, 0xca,
- 0xba, 0x70, 0xb4, 0xac, 0x6f, 0x70, 0x36, 0x58, 0xf2, 0x73, 0x7f, 0x09, 0xd8, 0x0d, 0xeb, 0x85,
- 0x86, 0x57, 0xe3, 0x23, 0x17, 0x6e, 0x93, 0xaa, 0x90, 0xb9, 0xda, 0xc8, 0x51, 0x28, 0x16, 0xa5,
- 0xfc, 0xd6, 0x6a, 0x12, 0xf9, 0x2a, 0x32, 0x5b, 0xbb, 0xb5, 0xca, 0xc0, 0x32, 0x0e, 0xbf, 0xea,
- 0x7e, 0xa5, 0x00, 0xc0, 0x12, 0xd5, 0xf1, 0x8b, 0xd1, 0xbf, 0x20, 0x83, 0xa8, 0x4c, 0x1f, 0xa7,
- 0x0a, 0xa2, 0x62, 0x57, 0xbf, 0xf5, 0xe0, 0x29, 0xfd, 0xc2, 0x44, 0x61, 0xff, 0x0b, 0x13, 0xa8,
- 0x05, 0x83, 0x61, 0x3b, 0xa1, 0xba, 0xaa, 0xd8, 0xec, 0x2d, 0xb8, 0xf8, 0xd7, 0x38, 0x41, 0x7e,
- 0xcb, 0x40, 0xfc, 0xc0, 0x92, 0x0d, 0x7a, 0x16, 0x86, 0x5a, 0x51, 0x58, 0xa3, 0x7b, 0xb7, 0xd8,
- 0xde, 0x1f, 0x92, 0xfa, 0xd0, 0xba, 0x80, 0xdf, 0xd1, 0xfe, 0xc7, 0x0a, 0xdb, 0xfd, 0xe3, 0x09,
- 0x3e, 0x2e, 0x62, 0xee, 0x4d, 0x42, 0xc1, 0x97, 0x96, 0x29, 0x10, 0x24, 0x0a, 0x4b, 0xf3, 0xb8,
- 0xe0, 0x57, 0xd5, 0xba, 0x2a, 0x74, 0x5d, 0x57, 0xef, 0x81, 0x91, 0xaa, 0x1f, 0xb7, 0x1a, 0xde,
- 0xee, 0xd5, 0x1c, 0xb3, 0xe0, 0x7c, 0x5a, 0x84, 0x75, 0x3c, 0xf4, 0x94, 0xb8, 0x1e, 0xd3, 0x6f,
- 0x98, 0x82, 0xe4, 0xf5, 0x98, 0xf4, 0xe2, 0x3d, 0xbf, 0x19, 0x93, 0x4d, 0x50, 0x50, 0xec, 0x39,
- 0x41, 0x41, 0x56, 0x13, 0x1b, 0x38, 0x7e, 0x4d, 0xec, 0x7d, 0x30, 0x26, 0x7f, 0x32, 0xf5, 0xa8,
- 0x74, 0x9a, 0xb5, 0x5e, 0x99, 0xc1, 0x37, 0xf4, 0x42, 0x6c, 0xe2, 0xa6, 0x93, 0x76, 0xb0, 0xd7,
- 0x49, 0x7b, 0x09, 0x60, 0x33, 0x6c, 0x07, 0x55, 0x2f, 0xda, 0x5d, 0x9a, 0x17, 0xc1, 0xb4, 0x4a,
- 0xf1, 0x9b, 0x55, 0x25, 0x58, 0xc3, 0xd2, 0x27, 0xfa, 0xf0, 0x5d, 0x26, 0xfa, 0x87, 0x60, 0x98,
- 0x05, 0x1e, 0x93, 0xea, 0x4c, 0x22, 0xa2, 0x9f, 0x0e, 0x12, 0xcd, 0x99, 0xc6, 0x43, 0x4a, 0x22,
- 0x38, 0xa5, 0x87, 0x3e, 0x0c, 0xb0, 0xe5, 0x07, 0x7e, 0x5c, 0x67, 0xd4, 0x47, 0x0e, 0x4c, 0x5d,
- 0xf5, 0x73, 0x41, 0x51, 0xc1, 0x1a, 0x45, 0xf4, 0x12, 0x9c, 0x24, 0x71, 0xe2, 0x37, 0xbd, 0x84,
- 0x54, 0xd5, 0x85, 0xd2, 0x12, 0xb3, 0x65, 0xaa, 0xd0, 0xef, 0xcb, 0x59, 0x84, 0x3b, 0x79, 0x40,
- 0xdc, 0x49, 0xc8, 0x58, 0x91, 0x93, 0x07, 0x59, 0x91, 0xe8, 0x7f, 0x3a, 0x70, 0x32, 0x22, 0x3c,
- 0x24, 0x26, 0x56, 0x0d, 0x3b, 0xc3, 0xc4, 0x71, 0xc5, 0x46, 0x0e, 0x78, 0x95, 0xec, 0x05, 0x67,
- 0xb9, 0x70, 0xc5, 0x85, 0xc8, 0xde, 0x77, 0x94, 0xdf, 0xc9, 0x03, 0xbe, 0xf9, 0xf6, 0xd4, 0x54,
- 0xe7, 0x5b, 0x04, 0x8a, 0x38, 0x5d, 0x79, 0x7f, 0xf3, 0xed, 0xa9, 0x09, 0xf9, 0x3b, 0x1d, 0xb4,
- 0x8e, 0x4e, 0xd2, 0x6d, 0xb5, 0x15, 0x56, 0x97, 0xd6, 0x45, 0x98, 0x9a, 0xda, 0x56, 0xd7, 0x29,
- 0x10, 0xf3, 0x32, 0xf4, 0x04, 0x0c, 0x55, 0x3d, 0xd2, 0x0c, 0x03, 0x95, 0xcd, 0x97, 0x69, 0xf3,
- 0xf3, 0x02, 0x86, 0x55, 0x29, 0x3d, 0x43, 0x04, 0x62, 0x4b, 0x29, 0x9d, 0xb7, 0x75, 0x86, 0x90,
- 0x9b, 0x14, 0xe7, 0x2a, 0x7f, 0x61, 0xc5, 0x09, 0x35, 0x60, 0xc0, 0x67, 0x86, 0x0a, 0x11, 0x09,
- 0x6b, 0xc1, 0x3a, 0xc2, 0x0d, 0x1f, 0x32, 0x0e, 0x96, 0x89, 0x7e, 0xc1, 0x43, 0xdf, 0x6b, 0x4e,
- 0x1c, 0xcf, 0x5e, 0xf3, 0x04, 0x0c, 0x55, 0xea, 0x7e, 0xa3, 0x1a, 0x91, 0xa0, 0x34, 0xc1, 0x4e,
- 0xec, 0x6c, 0x24, 0xe6, 0x04, 0x0c, 0xab, 0x52, 0xf4, 0x57, 0x60, 0x2c, 0x6c, 0x27, 0x4c, 0xb4,
- 0xd0, 0x71, 0x8a, 0x4b, 0x27, 0x19, 0x3a, 0x8b, 0x6b, 0x5a, 0xd3, 0x0b, 0xb0, 0x89, 0x47, 0x45,
- 0x7c, 0x3d, 0x8c, 0x59, 0x5e, 0x22, 0x26, 0xe2, 0xcf, 0x9a, 0x22, 0xfe, 0x8a, 0x56, 0x86, 0x0d,
- 0x4c, 0xf4, 0x35, 0x07, 0x4e, 0x36, 0xb3, 0x07, 0xb8, 0xd2, 0x39, 0x36, 0x32, 0x65, 0x1b, 0x8a,
- 0x7e, 0x86, 0x34, 0x8f, 0x48, 0xef, 0x00, 0xe3, 0xce, 0x46, 0xb0, 0x0c, 0x61, 0xf1, 0x6e, 0x50,
- 0xa9, 0x47, 0x61, 0x60, 0x36, 0xef, 0x41, 0x5b, 0xf7, 0xe2, 0xd8, 0xda, 0xce, 0x63, 0x31, 0xfb,
- 0xe0, 0xed, 0xbd, 0xa9, 0x33, 0xb9, 0x45, 0x38, 0xbf, 0x51, 0x93, 0xf3, 0x70, 0x36, 0x5f, 0x3e,
- 0xdc, 0xed, 0xc4, 0xd1, 0xa7, 0x9f, 0x38, 0x16, 0xe0, 0xc1, 0xae, 0x8d, 0xa2, 0x3b, 0x8d, 0xd4,
- 0x36, 0x1d, 0x73, 0xa7, 0xe9, 0xd0, 0x0e, 0xc7, 0x61, 0x54, 0x7f, 0xbc, 0xc2, 0xfd, 0x3f, 0x7d,
- 0x00, 0xa9, 0x9d, 0x1c, 0x79, 0x30, 0xce, 0x6d, 0xf2, 0x4b, 0xf3, 0x87, 0xbe, 0xd1, 0x3f, 0x67,
- 0x10, 0xc0, 0x19, 0x82, 0xa8, 0x09, 0x88, 0x43, 0xf8, 0xef, 0xc3, 0xf8, 0x56, 0x99, 0x2b, 0x72,
- 0xae, 0x83, 0x08, 0xce, 0x21, 0x4c, 0x7b, 0x94, 0x84, 0xdb, 0x24, 0xb8, 0x86, 0x57, 0x0e, 0x93,
- 0x16, 0x82, 0x7b, 0xe3, 0x0c, 0x02, 0x38, 0x43, 0x10, 0xb9, 0x30, 0xc0, 0x6c, 0x33, 0x32, 0x76,
- 0x9c, 0x89, 0x17, 0xa6, 0x69, 0xc4, 0x58, 0x94, 0xa0, 0xaf, 0x38, 0x30, 0x2e, 0xb3, 0x5b, 0x30,
- 0x6b, 0xa8, 0x8c, 0x1a, 0xbf, 0x66, 0xcb, 0xcf, 0x71, 0x59, 0xa7, 0x9e, 0xc6, 0x64, 0x1a, 0xe0,
- 0x18, 0x67, 0x1a, 0xe1, 0xbe, 0x00, 0xa7, 0x72, 0xaa, 0x5b, 0x39, 0xd1, 0x7e, 0xd7, 0x81, 0x11,
- 0x2d, 0xe9, 0x22, 0x7a, 0x1d, 0x86, 0xc3, 0xb2, 0xf5, 0x40, 0xc0, 0xb5, 0x72, 0x47, 0x20, 0xa0,
- 0x02, 0xe1, 0x94, 0x61, 0x2f, 0xf1, 0x8b, 0xb9, 0x19, 0x22, 0xef, 0x73, 0xb3, 0x0f, 0x1c, 0xbf,
- 0xf8, 0x2b, 0x45, 0x48, 0x29, 0x1d, 0x30, 0xeb, 0x4a, 0x1a, 0xed, 0x58, 0xd8, 0x37, 0xda, 0xb1,
- 0x0a, 0x27, 0x3c, 0xe6, 0x4b, 0x3e, 0x64, 0xae, 0x15, 0x9e, 0x73, 0xd7, 0xa4, 0x80, 0xb3, 0x24,
- 0x29, 0x97, 0x38, 0xad, 0xca, 0xb8, 0xf4, 0x1f, 0x98, 0x4b, 0xd9, 0xa4, 0x80, 0xb3, 0x24, 0xd1,
- 0x4b, 0x50, 0xaa, 0xb0, 0xbb, 0xc3, 0xbc, 0x8f, 0x4b, 0x5b, 0x57, 0xc3, 0x64, 0x3d, 0x22, 0x31,
- 0x09, 0x12, 0x91, 0x55, 0xed, 0x11, 0x31, 0x0a, 0xa5, 0xb9, 0x2e, 0x78, 0xb8, 0x2b, 0x05, 0x7a,
- 0x4c, 0x61, 0xce, 0x68, 0x3f, 0xd9, 0x65, 0x42, 0x44, 0x78, 0xe9, 0xd5, 0x31, 0xa5, 0xac, 0x17,
- 0x62, 0x13, 0x17, 0xfd, 0xb2, 0x03, 0x63, 0x0d, 0x69, 0xae, 0xc7, 0xed, 0x86, 0x4c, 0x11, 0x8a,
- 0xad, 0x4c, 0xbf, 0x15, 0x9d, 0x32, 0xd7, 0x25, 0x0c, 0x10, 0x36, 0x79, 0x67, 0x13, 0xdf, 0x0c,
- 0xf5, 0x98, 0xf8, 0xe6, 0x07, 0x0e, 0x4c, 0x64, 0xb9, 0xa1, 0x6d, 0x78, 0xb8, 0xe9, 0x45, 0xdb,
- 0x4b, 0xc1, 0x56, 0xc4, 0xee, 0x88, 0x24, 0x7c, 0x32, 0xcc, 0x6c, 0x25, 0x24, 0x9a, 0xf7, 0x76,
- 0xb9, 0xfb, 0xb3, 0xa8, 0xde, 0x98, 0x7a, 0x78, 0x75, 0x3f, 0x64, 0xbc, 0x3f, 0x2d, 0x54, 0x86,
- 0x33, 0x14, 0x81, 0xe5, 0xc5, 0xf3, 0xc3, 0x20, 0x65, 0x52, 0x60, 0x4c, 0x54, 0x9c, 0xe2, 0x6a,
- 0x1e, 0x12, 0xce, 0xaf, 0xeb, 0x5e, 0x86, 0x01, 0x7e, 0x65, 0xef, 0x9e, 0xfc, 0x47, 0xee, 0xbf,
- 0x29, 0x80, 0x54, 0x0c, 0xff, 0x72, 0xbb, 0xe3, 0xe8, 0x26, 0x1a, 0x31, 0x93, 0x92, 0xb0, 0x76,
- 0xb0, 0x4d, 0x54, 0x64, 0xa0, 0x14, 0x25, 0x54, 0x63, 0x26, 0xb7, 0xfc, 0x64, 0x2e, 0xac, 0x4a,
- 0x1b, 0x07, 0xd3, 0x98, 0x2f, 0x0b, 0x18, 0x56, 0xa5, 0xee, 0xa7, 0x1c, 0x18, 0xa3, 0xbd, 0x6c,
- 0x34, 0x48, 0xa3, 0x9c, 0x90, 0x56, 0x8c, 0x62, 0x28, 0xc6, 0xf4, 0x1f, 0x7b, 0xa6, 0xc0, 0xf4,
- 0x9a, 0x27, 0x69, 0x69, 0xce, 0x1a, 0xca, 0x04, 0x73, 0x5e, 0xee, 0x5b, 0x7d, 0x30, 0xac, 0x06,
- 0xbb, 0x07, 0x7b, 0xea, 0xa5, 0x34, 0x39, 0x2c, 0x97, 0xc0, 0x25, 0x2d, 0x31, 0xec, 0x1d, 0x3a,
- 0x74, 0xc1, 0x2e, 0xcf, 0x92, 0x91, 0x66, 0x89, 0x7d, 0xca, 0x74, 0x35, 0x9f, 0xd5, 0xe7, 0x9f,
- 0x86, 0x2f, 0x7c, 0xce, 0xb7, 0x74, 0x4f, 0x7f, 0xbf, 0xad, 0xdd, 0x4c, 0xb9, 0x31, 0xbb, 0xbb,
- 0xf8, 0x33, 0xef, 0x06, 0x15, 0x7b, 0x7a, 0x37, 0xe8, 0x49, 0xe8, 0x27, 0x41, 0xbb, 0xc9, 0x54,
- 0xa5, 0x61, 0x76, 0x44, 0xe8, 0xbf, 0x1c, 0xb4, 0x9b, 0x66, 0xcf, 0x18, 0x0a, 0x7a, 0x3f, 0x8c,
- 0x54, 0x49, 0x5c, 0x89, 0x7c, 0x96, 0xfa, 0x41, 0x58, 0x76, 0x1e, 0x62, 0xe6, 0xb2, 0x14, 0x6c,
- 0x56, 0xd4, 0x2b, 0xb8, 0xaf, 0xc2, 0xc0, 0x7a, 0xa3, 0x5d, 0xf3, 0x03, 0xd4, 0x82, 0x01, 0x9e,
- 0x08, 0x42, 0xec, 0xf6, 0x16, 0xce, 0x9d, 0x5c, 0x54, 0x68, 0x51, 0x28, 0xfc, 0xb6, 0xaf, 0xe0,
- 0xe3, 0x7e, 0xb2, 0x00, 0xf4, 0x68, 0xbe, 0x38, 0x87, 0xfe, 0x7a, 0xc7, 0x33, 0x39, 0x3f, 0x97,
- 0xf3, 0x4c, 0xce, 0x18, 0x43, 0xce, 0x79, 0x21, 0xa7, 0x01, 0x63, 0xcc, 0x39, 0x22, 0xf7, 0x40,
- 0xa1, 0x56, 0x3f, 0xd3, 0x63, 0xee, 0x04, 0xbd, 0xaa, 0xd8, 0x11, 0x74, 0x10, 0x36, 0x89, 0xa3,
- 0x55, 0x38, 0xc5, 0x73, 0x8c, 0xce, 0x93, 0x86, 0xb7, 0x9b, 0xc9, 0x25, 0x76, 0x5e, 0xbe, 0x7c,
- 0x36, 0xdf, 0x89, 0x82, 0xf3, 0xea, 0xb9, 0xbf, 0xd7, 0x0f, 0x9a, 0x4b, 0xa2, 0x87, 0xd5, 0xf2,
- 0x4a, 0xc6, 0x01, 0xb5, 0x6a, 0xc5, 0x01, 0x25, 0xbd, 0x3a, 0x5c, 0x02, 0x99, 0x3e, 0x27, 0xda,
- 0xa8, 0x3a, 0x69, 0xb4, 0x44, 0x1f, 0x55, 0xa3, 0xae, 0x90, 0x46, 0x0b, 0xb3, 0x12, 0x75, 0xd7,
- 0xb1, 0xbf, 0xeb, 0x5d, 0xc7, 0x3a, 0x14, 0x6b, 0x5e, 0xbb, 0x46, 0x44, 0x04, 0xa6, 0x05, 0x5f,
- 0x23, 0xbb, 0x7d, 0xc1, 0x7d, 0x8d, 0xec, 0x5f, 0xcc, 0x19, 0xd0, 0xc5, 0x5e, 0x97, 0x21, 0x29,
- 0xc2, 0x48, 0x6b, 0x61, 0xb1, 0xab, 0x28, 0x17, 0xbe, 0xd8, 0xd5, 0x4f, 0x9c, 0x32, 0x43, 0x2d,
- 0x18, 0xac, 0xf0, 0x0c, 0x2e, 0x42, 0x67, 0x59, 0xb2, 0x71, 0x99, 0x93, 0x11, 0xe4, 0xd6, 0x14,
- 0xf1, 0x03, 0x4b, 0x36, 0xee, 0x45, 0x18, 0xd1, 0x5e, 0xeb, 0xa0, 0x9f, 0x41, 0x25, 0x0f, 0xd1,
- 0x3e, 0xc3, 0xbc, 0x97, 0x78, 0x98, 0x95, 0xb8, 0xdf, 0xea, 0x07, 0x65, 0x4b, 0xd3, 0xaf, 0x1e,
- 0x7a, 0x15, 0x2d, 0xd5, 0x91, 0x71, 0x0d, 0x3f, 0x0c, 0xb0, 0x28, 0xa5, 0x7a, 0x5d, 0x93, 0x44,
- 0x35, 0x75, 0x8e, 0x16, 0xe2, 0x5a, 0xe9, 0x75, 0xab, 0x7a, 0x21, 0x36, 0x71, 0xa9, 0x52, 0xde,
- 0x14, 0x2e, 0xfa, 0x6c, 0x60, 0xb5, 0x74, 0xdd, 0x63, 0x85, 0xc1, 0x72, 0x25, 0x34, 0x35, 0x8f,
- 0xbe, 0x08, 0xc4, 0xb4, 0xe1, 0x50, 0xd2, 0xa8, 0xf2, 0x80, 0x29, 0x1d, 0x82, 0x0d, 0xae, 0x68,
- 0x11, 0x4e, 0xc6, 0x24, 0x59, 0xbb, 0x19, 0x90, 0x48, 0x65, 0x29, 0x10, 0xc9, 0x38, 0xd4, 0xc5,
- 0x8c, 0x72, 0x16, 0x01, 0x77, 0xd6, 0xc9, 0x8d, 0x5d, 0x2d, 0x1e, 0x38, 0x76, 0x75, 0x1e, 0x26,
- 0xb6, 0x3c, 0xbf, 0xd1, 0x8e, 0x48, 0xd7, 0x08, 0xd8, 0x85, 0x4c, 0x39, 0xee, 0xa8, 0xc1, 0xee,
- 0x06, 0x35, 0xbc, 0x5a, 0x5c, 0x1a, 0xd4, 0xee, 0x06, 0x51, 0x00, 0xe6, 0x70, 0xf7, 0x37, 0x1d,
- 0xe0, 0x59, 0x90, 0x66, 0xb6, 0xb6, 0xfc, 0xc0, 0x4f, 0x76, 0xd1, 0xd7, 0x1d, 0x98, 0x08, 0xc2,
- 0x2a, 0x99, 0x09, 0x12, 0x5f, 0x02, 0xed, 0xa5, 0xa6, 0x67, 0xbc, 0xae, 0x66, 0xc8, 0xf3, 0x94,
- 0x1a, 0x59, 0x28, 0xee, 0x68, 0x86, 0x7b, 0x0e, 0xce, 0xe4, 0x12, 0x70, 0x7f, 0xd0, 0x07, 0x66,
- 0x32, 0x27, 0xf4, 0x3c, 0x14, 0x1b, 0x2c, 0xbd, 0x88, 0x73, 0xc8, 0x2c, 0x5d, 0x6c, 0xac, 0x78,
- 0xfe, 0x11, 0x4e, 0x09, 0xcd, 0xc3, 0x08, 0xcb, 0x10, 0x25, 0x92, 0xbf, 0x14, 0x8c, 0xac, 0x0a,
- 0x23, 0x38, 0x2d, 0xba, 0x63, 0xfe, 0xc4, 0x7a, 0x35, 0xf4, 0x1a, 0x0c, 0x6e, 0xf2, 0x3c, 0x99,
- 0xf6, 0x7c, 0x7e, 0x22, 0xf1, 0x26, 0xd3, 0x8d, 0x64, 0x16, 0xce, 0x3b, 0xe9, 0xbf, 0x58, 0x72,
- 0x44, 0xbb, 0x30, 0xe4, 0xc9, 0x6f, 0xda, 0x6f, 0xeb, 0xa2, 0x86, 0x31, 0x7f, 0x44, 0xc4, 0x8c,
- 0xfc, 0x86, 0x8a, 0x5d, 0x26, 0xb4, 0xa8, 0xd8, 0x53, 0x68, 0xd1, 0x77, 0x1c, 0x80, 0xf4, 0x51,
- 0x11, 0x74, 0x0b, 0x86, 0xe2, 0x67, 0x0c, 0x43, 0x85, 0x8d, 0x4b, 0xfe, 0x82, 0xa2, 0x76, 0x11,
- 0x56, 0x40, 0xb0, 0xe2, 0x76, 0x37, 0xe3, 0xca, 0x4f, 0x1d, 0x38, 0x9d, 0xf7, 0xf8, 0xc9, 0x7d,
- 0x6c, 0xf1, 0x41, 0xed, 0x2a, 0xa2, 0xc2, 0x7a, 0x44, 0xb6, 0xfc, 0x5b, 0x39, 0xd9, 0x9a, 0x79,
- 0x01, 0x4e, 0x71, 0xdc, 0x3f, 0x1d, 0x04, 0xc5, 0xf8, 0x88, 0xec, 0x30, 0x8f, 0xd3, 0x33, 0x53,
- 0x2d, 0xd5, 0xb9, 0x14, 0x1e, 0x66, 0x50, 0x2c, 0x4a, 0xe9, 0xb9, 0x49, 0x06, 0xc5, 0x0b, 0x91,
- 0xcd, 0x66, 0xa1, 0x0c, 0x9e, 0xc7, 0xaa, 0x34, 0xcf, 0xb2, 0x53, 0x3c, 0x16, 0xcb, 0xce, 0x80,
- 0x7d, 0xcb, 0x4e, 0x13, 0x50, 0xcc, 0x17, 0x0a, 0x33, 0xa7, 0x08, 0x46, 0xa3, 0x07, 0x36, 0x34,
- 0x97, 0x3b, 0x88, 0xe0, 0x1c, 0xc2, 0x2c, 0x86, 0x22, 0x6c, 0x90, 0x19, 0x7c, 0x55, 0x1c, 0x3e,
- 0xd2, 0x18, 0x0a, 0x0e, 0xc6, 0xb2, 0xfc, 0x90, 0xa6, 0x14, 0xf4, 0xdb, 0xce, 0x3e, 0xb6, 0xaa,
- 0x61, 0x5b, 0x5b, 0x50, 0x6e, 0x26, 0x3d, 0x76, 0x92, 0x3a, 0x8c, 0x01, 0xec, 0x1b, 0x0e, 0x9c,
- 0x24, 0x41, 0x25, 0xda, 0x65, 0x74, 0x04, 0x35, 0xe1, 0xe2, 0xbe, 0x66, 0x63, 0xad, 0x5f, 0xce,
- 0x12, 0xe7, 0x9e, 0xa4, 0x0e, 0x30, 0xee, 0x6c, 0x06, 0x5a, 0x83, 0xa1, 0x8a, 0x27, 0xe6, 0xc5,
- 0xc8, 0x41, 0xe6, 0x05, 0x77, 0xd4, 0xcd, 0x88, 0xd9, 0xa0, 0x88, 0xb8, 0x3f, 0x2e, 0xc0, 0xa9,
- 0x9c, 0x26, 0xb1, 0xfb, 0x5a, 0x4d, 0xba, 0x00, 0x96, 0xaa, 0xd9, 0xe5, 0xbf, 0x2c, 0xe0, 0x58,
- 0x61, 0xa0, 0x75, 0x38, 0xbd, 0xdd, 0x8c, 0x53, 0x2a, 0x73, 0x61, 0x90, 0x90, 0x5b, 0x52, 0x18,
- 0x48, 0xf7, 0xf7, 0xe9, 0xe5, 0x1c, 0x1c, 0x9c, 0x5b, 0x93, 0x6a, 0x4b, 0x24, 0xf0, 0x36, 0x1b,
- 0x24, 0x2d, 0x12, 0xb7, 0x18, 0x95, 0xb6, 0x74, 0x39, 0x53, 0x8e, 0x3b, 0x6a, 0xa0, 0xcf, 0x39,
- 0x70, 0x3e, 0x26, 0xd1, 0x0e, 0x89, 0xca, 0x7e, 0x95, 0xcc, 0xb5, 0xe3, 0x24, 0x6c, 0x92, 0xe8,
- 0x90, 0xd6, 0xd9, 0xa9, 0xdb, 0x7b, 0x53, 0xe7, 0xcb, 0xdd, 0xa9, 0xe1, 0xfd, 0x58, 0xb9, 0x9f,
- 0x73, 0x60, 0xbc, 0xcc, 0xce, 0xee, 0x4a, 0x75, 0xb7, 0x9d, 0x4b, 0xf5, 0x71, 0x95, 0xba, 0x23,
- 0x23, 0x84, 0xcd, 0x64, 0x1b, 0xee, 0xcb, 0x30, 0x51, 0x26, 0x4d, 0xaf, 0x55, 0x67, 0xb7, 0x98,
- 0x79, 0xf8, 0xd7, 0x45, 0x18, 0x8e, 0x25, 0x2c, 0xfb, 0x7c, 0x92, 0x42, 0xc6, 0x29, 0x0e, 0x7a,
- 0x8c, 0x87, 0xaa, 0xc9, 0x0b, 0x47, 0xc3, 0xfc, 0x90, 0xc3, 0xe3, 0xdb, 0x62, 0x2c, 0xcb, 0xdc,
- 0xb7, 0x1c, 0x18, 0x4d, 0xeb, 0x93, 0x2d, 0x54, 0x83, 0x13, 0x15, 0xed, 0xb2, 0x5e, 0x7a, 0x4d,
- 0xa2, 0xf7, 0x7b, 0x7d, 0x3c, 0xc5, 0xb3, 0x49, 0x04, 0x67, 0xa9, 0x1e, 0x3c, 0xd2, 0xef, 0x8b,
- 0x05, 0x38, 0xa1, 0x9a, 0x2a, 0xfc, 0x94, 0x6f, 0x64, 0x03, 0xf2, 0xb0, 0x8d, 0x24, 0x44, 0xe6,
- 0xd8, 0xef, 0x13, 0x94, 0xf7, 0x46, 0x36, 0x28, 0xef, 0x48, 0xd9, 0x77, 0xb8, 0x5e, 0xbf, 0x53,
- 0x80, 0x21, 0x95, 0x12, 0xe9, 0x79, 0x28, 0xb2, 0x93, 0xeb, 0xbd, 0xe9, 0xdf, 0xec, 0x14, 0x8c,
- 0x39, 0x25, 0x4a, 0x92, 0x05, 0xfd, 0x1c, 0x3a, 0xf1, 0xee, 0x30, 0xb7, 0x5f, 0x7a, 0x51, 0x82,
- 0x39, 0x25, 0xb4, 0x0c, 0x7d, 0x24, 0xa8, 0x0a, 0x45, 0xfc, 0xe0, 0x04, 0xd9, 0x43, 0x67, 0x97,
- 0x83, 0x2a, 0xa6, 0x54, 0x58, 0x5e, 0x36, 0xae, 0x6f, 0x65, 0x9e, 0xb5, 0x11, 0xca, 0x96, 0x28,
- 0x75, 0x67, 0xc1, 0xc8, 0xd9, 0x77, 0xa8, 0x9b, 0x11, 0xbf, 0xdc, 0x07, 0x03, 0xe5, 0xf6, 0x26,
- 0x3d, 0x96, 0x7c, 0xdb, 0x81, 0x53, 0x37, 0x33, 0x99, 0xad, 0xd3, 0x75, 0x72, 0xcd, 0x9e, 0x1d,
- 0x58, 0x0f, 0x5e, 0x53, 0xd6, 0xaf, 0x9c, 0x42, 0x9c, 0xd7, 0x1c, 0x23, 0xb9, 0x6c, 0xdf, 0x91,
- 0x24, 0x97, 0xbd, 0x75, 0xc4, 0xb7, 0x37, 0xc6, 0xba, 0xdd, 0xdc, 0x70, 0x7f, 0xaf, 0x08, 0xc0,
- 0xbf, 0xc6, 0x5a, 0x2b, 0xe9, 0xc5, 0xb2, 0xf7, 0x2c, 0x8c, 0xd6, 0x48, 0x40, 0x22, 0x19, 0x9a,
- 0x98, 0x79, 0x75, 0x69, 0x51, 0x2b, 0xc3, 0x06, 0x26, 0x9b, 0x2c, 0x41, 0x12, 0xed, 0x72, 0x55,
- 0x3b, 0x7b, 0x43, 0x43, 0x95, 0x60, 0x0d, 0x0b, 0x4d, 0x1b, 0x8e, 0x17, 0xee, 0xc3, 0x1f, 0xdf,
- 0xc7, 0x4f, 0xf2, 0x7e, 0x18, 0x37, 0x33, 0xb1, 0x08, 0x85, 0x4f, 0xf9, 0xdc, 0xcd, 0x04, 0x2e,
- 0x38, 0x83, 0x4d, 0x17, 0x42, 0x35, 0xda, 0xc5, 0xed, 0x40, 0x68, 0x7e, 0x6a, 0x21, 0xcc, 0x33,
- 0x28, 0x16, 0xa5, 0x2c, 0x85, 0x05, 0xdb, 0x03, 0x39, 0x5c, 0xa4, 0xc1, 0x48, 0x53, 0x58, 0x68,
- 0x65, 0xd8, 0xc0, 0xa4, 0x1c, 0x84, 0x65, 0x14, 0xcc, 0xa5, 0x96, 0x31, 0x67, 0xb6, 0x60, 0x3c,
- 0x34, 0x2d, 0x3a, 0x5c, 0x0d, 0x7a, 0x77, 0x8f, 0x53, 0xcf, 0xa8, 0xcb, 0x63, 0x25, 0x32, 0x06,
- 0xa0, 0x0c, 0x7d, 0xaa, 0xfa, 0xea, 0x17, 0x19, 0x46, 0xcd, 0xc8, 0xd6, 0xae, 0x77, 0x0d, 0xd6,
- 0xe1, 0x74, 0x2b, 0xac, 0xae, 0x47, 0x7e, 0x18, 0xf9, 0xc9, 0xee, 0x5c, 0xc3, 0x8b, 0x63, 0x36,
- 0x31, 0xc6, 0x4c, 0x95, 0x68, 0x3d, 0x07, 0x07, 0xe7, 0xd6, 0xa4, 0x67, 0xa2, 0x96, 0x00, 0xb2,
- 0xf8, 0xb2, 0x22, 0x57, 0xea, 0x24, 0x22, 0x56, 0xa5, 0xee, 0x29, 0x38, 0x59, 0x6e, 0xb7, 0x5a,
- 0x0d, 0x9f, 0x54, 0x95, 0x63, 0xc3, 0xfd, 0x00, 0x9c, 0x10, 0xa9, 0x67, 0x95, 0x02, 0x72, 0xa0,
- 0x44, 0xe9, 0xee, 0x7f, 0xec, 0x83, 0x13, 0x99, 0x68, 0x1e, 0xf4, 0x5a, 0x56, 0x6d, 0xb0, 0x93,
- 0x12, 0x55, 0x53, 0x18, 0x44, 0x7e, 0xd3, 0x3c, 0x15, 0xa4, 0x2e, 0x43, 0xf1, 0xad, 0x5d, 0x81,
- 0x61, 0x01, 0xeb, 0x7c, 0x57, 0x31, 0xe2, 0xf9, 0x3f, 0x06, 0xa0, 0xd8, 0xca, 0x5b, 0xf7, 0xb6,
- 0xfb, 0xc9, 0xd6, 0xaf, 0x82, 0xc4, 0x58, 0xe3, 0x88, 0x02, 0x18, 0x64, 0x0d, 0x21, 0xf2, 0xde,
- 0xa5, 0xb5, 0xbe, 0x32, 0xad, 0x6d, 0x95, 0xd3, 0xc6, 0x92, 0x89, 0xfb, 0xd9, 0x02, 0xe4, 0x87,
- 0x8c, 0xa1, 0x8f, 0x75, 0x7e, 0xf0, 0xe7, 0x2d, 0x0e, 0x84, 0x88, 0x59, 0xeb, 0xfe, 0xcd, 0x03,
- 0xf3, 0x9b, 0xaf, 0x5a, 0x1a, 0x07, 0xc1, 0xb7, 0xe3, 0xcb, 0xbb, 0xff, 0xc3, 0x81, 0x91, 0x8d,
- 0x8d, 0x15, 0xb5, 0xb5, 0x63, 0x38, 0x1b, 0xf3, 0x94, 0x06, 0xcc, 0xb3, 0x3e, 0x17, 0x36, 0x5b,
- 0xdc, 0xd1, 0x2e, 0x02, 0x00, 0x58, 0xd6, 0xe3, 0x72, 0x2e, 0x06, 0xee, 0x52, 0x13, 0x2d, 0xc1,
- 0x29, 0xbd, 0xa4, 0xac, 0x3d, 0x32, 0x59, 0x14, 0x19, 0x8e, 0x3a, 0x8b, 0x71, 0x5e, 0x9d, 0x2c,
- 0x29, 0x61, 0x50, 0x66, 0xdb, 0x73, 0x0e, 0x29, 0x51, 0x8c, 0xf3, 0xea, 0xb8, 0x6b, 0x30, 0xb2,
- 0xe1, 0x45, 0xaa, 0xe3, 0x1f, 0x84, 0x89, 0x4a, 0xd8, 0x94, 0xea, 0xca, 0x0a, 0xd9, 0x21, 0x0d,
- 0xd1, 0x65, 0xfe, 0xb2, 0x4b, 0xa6, 0x0c, 0x77, 0x60, 0xbb, 0xff, 0xf5, 0x02, 0xa8, 0x2b, 0x9a,
- 0x3d, 0xec, 0xa8, 0x2d, 0x15, 0x4c, 0x5b, 0xb4, 0x1c, 0x4c, 0xab, 0xf6, 0x96, 0x4c, 0x40, 0x6d,
- 0x92, 0x06, 0xd4, 0x0e, 0xd8, 0x0e, 0xa8, 0x55, 0x4a, 0x76, 0x47, 0x50, 0xed, 0x57, 0x1d, 0x18,
- 0x0d, 0xc2, 0x2a, 0x51, 0x1e, 0xd0, 0x41, 0xb6, 0xc2, 0x5f, 0xb2, 0x77, 0x37, 0x81, 0x07, 0x87,
- 0x0a, 0xf2, 0x3c, 0xd0, 0x5b, 0x6d, 0xc9, 0x7a, 0x11, 0x36, 0xda, 0x81, 0x16, 0x34, 0xd3, 0x32,
- 0xf7, 0xe0, 0x3c, 0x94, 0x77, 0x44, 0xbb, 0xab, 0x9d, 0xf8, 0x96, 0xa6, 0x27, 0x0e, 0xdb, 0x32,
- 0x99, 0xca, 0x7b, 0x77, 0x9a, 0x23, 0x4a, 0x26, 0xee, 0x4e, 0xf5, 0x47, 0x17, 0x06, 0x78, 0x44,
- 0xb8, 0xc8, 0xa5, 0xc5, 0xfc, 0xa3, 0x3c, 0x5a, 0x1c, 0x8b, 0x12, 0x94, 0xc8, 0x28, 0x8b, 0x11,
- 0x5b, 0xcf, 0x70, 0x18, 0x51, 0x1c, 0xf9, 0x61, 0x16, 0xe8, 0x39, 0xfd, 0xe8, 0x3f, 0xda, 0xcb,
- 0xd1, 0x7f, 0xac, 0xeb, 0xb1, 0xff, 0x0b, 0x0e, 0x8c, 0x56, 0xb4, 0x67, 0x31, 0x4a, 0x4f, 0xd8,
- 0x7a, 0xfe, 0x3b, 0xef, 0xf5, 0x12, 0xee, 0x76, 0x33, 0x9e, 0xe1, 0x30, 0xb8, 0xb3, 0x04, 0xa2,
- 0xcc, 0xce, 0xc1, 0x54, 0x1d, 0x2b, 0x89, 0x39, 0x4c, 0xbb, 0x89, 0x8c, 0x56, 0xa5, 0x30, 0x2c,
- 0x78, 0xa1, 0xd7, 0x61, 0x48, 0x5e, 0x2a, 0x10, 0xc1, 0xf7, 0xd8, 0x86, 0x1f, 0xc4, 0x74, 0xb6,
- 0xca, 0xac, 0x83, 0x1c, 0x8a, 0x15, 0x47, 0x54, 0x87, 0xbe, 0xaa, 0x57, 0x13, 0x61, 0xf8, 0xab,
- 0x76, 0xb2, 0xba, 0x4a, 0x9e, 0xec, 0x48, 0x3a, 0x3f, 0xb3, 0x88, 0x29, 0x0b, 0x74, 0x2b, 0x7d,
- 0x57, 0x60, 0xc2, 0xda, 0xee, 0x6b, 0xaa, 0x85, 0x5c, 0x27, 0xe8, 0x78, 0xa6, 0xa0, 0x2a, 0xfc,
- 0xd3, 0xff, 0x1f, 0x63, 0xbb, 0x60, 0x27, 0x2d, 0x2c, 0x4f, 0xf4, 0x92, 0xfa, 0xb8, 0x29, 0x97,
- 0x7a, 0x92, 0xb4, 0x4a, 0x3f, 0x6f, 0x8b, 0x0b, 0x4b, 0x57, 0xc2, 0x5f, 0x6a, 0xdf, 0xd8, 0x58,
- 0xc7, 0x8c, 0x3a, 0x6a, 0xc0, 0x40, 0x8b, 0x85, 0xce, 0x94, 0xde, 0x69, 0x6b, 0x6f, 0xe1, 0xa1,
- 0x38, 0x7c, 0x6e, 0xf2, 0xff, 0xb1, 0xe0, 0x81, 0x2e, 0xc3, 0x20, 0x7f, 0x1e, 0x87, 0x5f, 0x83,
- 0x18, 0xb9, 0x34, 0xd9, 0xfd, 0x91, 0x9d, 0x74, 0xa3, 0xe0, 0xbf, 0x63, 0x2c, 0xeb, 0xa2, 0x2f,
- 0x3a, 0x30, 0x4e, 0x25, 0x6a, 0xfa, 0x9e, 0x4f, 0x09, 0xd9, 0x92, 0x59, 0xd7, 0x62, 0xaa, 0x91,
- 0x48, 0x59, 0xa3, 0x8e, 0x85, 0x4b, 0x06, 0x3b, 0x9c, 0x61, 0x8f, 0xde, 0x80, 0xa1, 0xd8, 0xaf,
- 0x92, 0x8a, 0x17, 0xc5, 0xa5, 0x53, 0x47, 0xd3, 0x94, 0xd4, 0x23, 0x26, 0x18, 0x61, 0xc5, 0x12,
- 0xfd, 0x1a, 0x7b, 0x50, 0xb5, 0x52, 0xf7, 0x77, 0xc8, 0x4a, 0x58, 0xe1, 0xc7, 0x98, 0xd3, 0xb6,
- 0xd6, 0xbe, 0xf4, 0xfd, 0x49, 0xca, 0xc2, 0x51, 0x64, 0xb2, 0xc3, 0x59, 0xfe, 0xe8, 0x6f, 0x38,
- 0x70, 0x86, 0x3f, 0x7c, 0x90, 0x7d, 0xcb, 0xe3, 0xcc, 0x21, 0x4d, 0x52, 0xec, 0xfe, 0xc6, 0x4c,
- 0x1e, 0x49, 0x9c, 0xcf, 0x89, 0xa5, 0x29, 0x36, 0x9f, 0x5f, 0x3a, 0x6b, 0xd5, 0x33, 0xdc, 0xfb,
- 0x93, 0x4b, 0xe8, 0x69, 0x18, 0x69, 0x89, 0xed, 0xd0, 0x8f, 0x9b, 0xec, 0x36, 0x4e, 0x1f, 0xbf,
- 0x27, 0xb9, 0x9e, 0x82, 0xb1, 0x8e, 0x63, 0xe4, 0xac, 0x7e, 0x72, 0xbf, 0x9c, 0xd5, 0xe8, 0x1a,
- 0x8c, 0x24, 0x61, 0x43, 0xa4, 0x6d, 0x8d, 0x4b, 0x25, 0x36, 0x03, 0x2f, 0xe4, 0xad, 0xad, 0x0d,
- 0x85, 0x96, 0x9e, 0xdc, 0x53, 0x58, 0x8c, 0x75, 0x3a, 0x2c, 0x02, 0x5a, 0x3c, 0x28, 0x11, 0xb1,
- 0x23, 0xfb, 0x83, 0x99, 0x08, 0x68, 0xbd, 0x10, 0x9b, 0xb8, 0x68, 0x11, 0x4e, 0xb6, 0x3a, 0xce,
- 0xfc, 0xfc, 0x16, 0xa0, 0x0a, 0x3a, 0xe9, 0x3c, 0xf0, 0x77, 0xd6, 0x31, 0x4e, 0xfb, 0xe7, 0xf7,
- 0x3b, 0xed, 0x77, 0xc9, 0xe0, 0xfc, 0xd0, 0x61, 0x32, 0x38, 0xa3, 0x2a, 0x3c, 0xe4, 0xb5, 0x93,
- 0x90, 0xa5, 0xe4, 0x31, 0xab, 0xf0, 0x60, 0xf0, 0x47, 0x78, 0x7c, 0xf9, 0xed, 0xbd, 0xa9, 0x87,
- 0x66, 0xf6, 0xc1, 0xc3, 0xfb, 0x52, 0x41, 0xaf, 0xc2, 0x10, 0x11, 0x59, 0xa8, 0x4b, 0x3f, 0x67,
- 0x4b, 0x49, 0x30, 0xf3, 0x5a, 0xcb, 0x38, 0x5b, 0x0e, 0xc3, 0x8a, 0x1f, 0xda, 0x80, 0x91, 0x7a,
- 0x18, 0x27, 0x33, 0x0d, 0xdf, 0x8b, 0x49, 0x5c, 0x7a, 0x98, 0x4d, 0x9a, 0x5c, 0xdd, 0xeb, 0x8a,
- 0x44, 0x4b, 0xe7, 0xcc, 0x95, 0xb4, 0x26, 0xd6, 0xc9, 0x20, 0xc2, 0xfc, 0xc3, 0x2c, 0x12, 0x5e,
- 0xfa, 0xbe, 0x2e, 0xb0, 0x8e, 0x3d, 0x9e, 0x47, 0x79, 0x3d, 0xac, 0x96, 0x4d, 0x6c, 0xe5, 0x20,
- 0xd6, 0x81, 0x38, 0x4b, 0x13, 0x3d, 0x0b, 0xa3, 0xad, 0xb0, 0x5a, 0x6e, 0x91, 0xca, 0xba, 0x97,
- 0x54, 0xea, 0xa5, 0x29, 0xd3, 0xca, 0xb8, 0xae, 0x95, 0x61, 0x03, 0x13, 0xb5, 0x60, 0xb0, 0xc9,
- 0x73, 0x35, 0x94, 0x1e, 0xb5, 0x75, 0xb6, 0x11, 0xc9, 0x1f, 0x84, 0x0d, 0x81, 0xff, 0xc0, 0x92,
- 0x0d, 0xfa, 0xfb, 0x0e, 0x9c, 0xc8, 0xdc, 0x2f, 0x2b, 0xbd, 0xc3, 0x9a, 0xca, 0x62, 0x12, 0x9e,
- 0x7d, 0x9c, 0x0d, 0x9f, 0x09, 0xbc, 0xd3, 0x09, 0xc2, 0xd9, 0x16, 0xf1, 0x71, 0x61, 0x09, 0x57,
- 0x4a, 0x8f, 0xd9, 0x1b, 0x17, 0x46, 0x50, 0x8e, 0x0b, 0xfb, 0x81, 0x25, 0x1b, 0xf4, 0x24, 0x0c,
- 0x8a, 0xdc, 0x88, 0xa5, 0xc7, 0x4d, 0xaf, 0xbb, 0x48, 0xa1, 0x88, 0x65, 0xf9, 0xe4, 0x07, 0xe0,
- 0x64, 0xc7, 0xd1, 0xed, 0x40, 0x59, 0x3f, 0x7e, 0xc3, 0x01, 0xfd, 0x42, 0xba, 0xf5, 0xa7, 0x5f,
- 0x9e, 0x85, 0xd1, 0x0a, 0x7f, 0x89, 0x93, 0x5f, 0x69, 0xef, 0x37, 0xed, 0xbd, 0x73, 0x5a, 0x19,
- 0x36, 0x30, 0xdd, 0x2b, 0x80, 0x3a, 0xf3, 0xf2, 0x1f, 0xca, 0x71, 0xf2, 0x0f, 0x1d, 0x18, 0x33,
- 0x74, 0x06, 0xeb, 0x7e, 0xd5, 0x05, 0x40, 0x4d, 0x3f, 0x8a, 0xc2, 0x48, 0x7f, 0xf2, 0x50, 0xa4,
- 0x9d, 0x60, 0xf1, 0x16, 0xab, 0x1d, 0xa5, 0x38, 0xa7, 0x86, 0xfb, 0x8f, 0xfb, 0x21, 0x0d, 0x34,
- 0x57, 0x59, 0x8b, 0x9d, 0xae, 0x59, 0x8b, 0x9f, 0x82, 0xa1, 0x97, 0xe3, 0x30, 0x58, 0x4f, 0x73,
- 0x1b, 0xab, 0x6f, 0xf1, 0x5c, 0x79, 0xed, 0x2a, 0xc3, 0x54, 0x18, 0x0c, 0xfb, 0x95, 0x05, 0xbf,
- 0x91, 0x74, 0x26, 0xbf, 0x7d, 0xee, 0x79, 0x0e, 0xc7, 0x0a, 0x83, 0xbd, 0x7e, 0xb8, 0x43, 0x94,
- 0x23, 0x20, 0x7d, 0xfd, 0x90, 0x3f, 0xb9, 0xc1, 0xca, 0xd0, 0x45, 0x18, 0x56, 0x4e, 0x04, 0xe1,
- 0x99, 0x50, 0x23, 0xa5, 0x3c, 0x0d, 0x38, 0xc5, 0x61, 0x0a, 0xa1, 0x30, 0x3c, 0x0b, 0x13, 0x4a,
- 0xd9, 0xc6, 0xf1, 0x24, 0x63, 0xca, 0xe6, 0xb2, 0x5d, 0x82, 0xb1, 0x62, 0x99, 0xe7, 0x5b, 0x1e,
- 0x3e, 0x12, 0xdf, 0xb2, 0x76, 0xeb, 0xa1, 0xd8, 0xeb, 0xad, 0x07, 0x73, 0x6e, 0x0f, 0xf5, 0x34,
- 0xb7, 0x3f, 0xdd, 0x07, 0x83, 0xd7, 0x49, 0xc4, 0xd2, 0xc6, 0x3f, 0x09, 0x83, 0x3b, 0xfc, 0xdf,
- 0xec, 0x95, 0x59, 0x81, 0x81, 0x65, 0x39, 0xfd, 0x6e, 0x9b, 0x6d, 0xbf, 0x51, 0x9d, 0x4f, 0x57,
- 0x71, 0x9a, 0xd6, 0x51, 0x16, 0xe0, 0x14, 0x87, 0x56, 0xa8, 0x51, 0xcd, 0xbe, 0xd9, 0xf4, 0x3b,
- 0x1e, 0xf6, 0x5f, 0x94, 0x05, 0x38, 0xc5, 0x41, 0x8f, 0xc3, 0x40, 0xcd, 0x4f, 0x36, 0xbc, 0x5a,
- 0xd6, 0x33, 0xba, 0xc8, 0xa0, 0x58, 0x94, 0x32, 0xb7, 0x98, 0x9f, 0x6c, 0x44, 0x84, 0x59, 0x76,
- 0x3b, 0x32, 0x76, 0x2c, 0x6a, 0x65, 0xd8, 0xc0, 0x64, 0x4d, 0x0a, 0x45, 0xcf, 0x44, 0x9c, 0x6c,
- 0xda, 0x24, 0x59, 0x80, 0x53, 0x1c, 0x3a, 0xff, 0x2b, 0x61, 0xb3, 0xe5, 0x37, 0x44, 0x04, 0xb7,
- 0x36, 0xff, 0xe7, 0x04, 0x1c, 0x2b, 0x0c, 0x8a, 0x4d, 0x45, 0x18, 0x15, 0x3f, 0xd9, 0x97, 0xe6,
- 0xd6, 0x05, 0x1c, 0x2b, 0x0c, 0xf7, 0x3a, 0x8c, 0xf1, 0x95, 0x3c, 0xd7, 0xf0, 0xfc, 0xe6, 0xe2,
- 0x1c, 0xba, 0xdc, 0x71, 0xeb, 0xe1, 0xc9, 0x9c, 0x5b, 0x0f, 0x67, 0x8c, 0x4a, 0x9d, 0xb7, 0x1f,
- 0xdc, 0x1f, 0x16, 0x60, 0xe8, 0x18, 0x1f, 0xeb, 0x3c, 0xf6, 0x77, 0xa7, 0xd1, 0xad, 0xcc, 0x43,
- 0x9d, 0xeb, 0x36, 0x2f, 0x31, 0xed, 0xfb, 0x48, 0xe7, 0x7f, 0x2a, 0xc0, 0x59, 0x89, 0x2a, 0xcf,
- 0x72, 0x8b, 0x73, 0xec, 0x01, 0xb4, 0xa3, 0x1f, 0xe8, 0xc8, 0x18, 0xe8, 0x75, 0x7b, 0xa7, 0xd1,
- 0xc5, 0xb9, 0xae, 0x43, 0xfd, 0x6a, 0x66, 0xa8, 0xb1, 0x55, 0xae, 0xfb, 0x0f, 0xf6, 0x9f, 0x3b,
- 0x30, 0x99, 0x3f, 0xd8, 0xc7, 0xf0, 0x36, 0xea, 0x1b, 0xe6, 0xdb, 0xa8, 0xbf, 0x68, 0x6f, 0x8a,
- 0x99, 0x5d, 0xe9, 0xf2, 0x4a, 0xea, 0x7f, 0x77, 0xe0, 0xb4, 0xac, 0xc0, 0x76, 0xcf, 0x59, 0x3f,
- 0x60, 0xc1, 0x3b, 0x47, 0x3f, 0xcd, 0x5e, 0x37, 0xa6, 0xd9, 0x8b, 0xf6, 0x3a, 0xae, 0xf7, 0xa3,
- 0xeb, 0x9b, 0xf2, 0x7f, 0xe6, 0x40, 0x29, 0xaf, 0xc2, 0x31, 0x7c, 0xf2, 0xd7, 0xcc, 0x4f, 0x7e,
- 0xfd, 0x68, 0x7a, 0xde, 0xfd, 0x83, 0x97, 0xba, 0x0d, 0x14, 0x6a, 0x48, 0xbd, 0xca, 0xb1, 0xe5,
- 0x93, 0xe6, 0x2c, 0xf2, 0x15, 0xb4, 0x06, 0x0c, 0xc4, 0x2c, 0x4a, 0x45, 0x4c, 0x81, 0x2b, 0x36,
- 0xb4, 0x2d, 0x4a, 0x4f, 0xd8, 0xd8, 0xd9, 0xff, 0x58, 0xf0, 0x70, 0x7f, 0xb3, 0x00, 0xe7, 0xd4,
- 0x9b, 0xc7, 0x64, 0x87, 0x34, 0xd2, 0xf5, 0xc1, 0x5e, 0xc8, 0xf0, 0xd4, 0x4f, 0x7b, 0x2f, 0x64,
- 0xa4, 0x2c, 0xd2, 0xb5, 0x90, 0xc2, 0xb0, 0xc6, 0x13, 0x95, 0xe1, 0x0c, 0x7b, 0xd1, 0x62, 0xc1,
- 0x0f, 0xbc, 0x86, 0xff, 0x2a, 0x89, 0x30, 0x69, 0x86, 0x3b, 0x5e, 0x43, 0x68, 0xea, 0xea, 0xd6,
- 0xf4, 0x42, 0x1e, 0x12, 0xce, 0xaf, 0xdb, 0x71, 0xe2, 0xee, 0xeb, 0xf5, 0xc4, 0xed, 0xfe, 0x89,
- 0x03, 0xa3, 0xc7, 0xf8, 0x42, 0x74, 0x68, 0x2e, 0x89, 0xe7, 0xec, 0x2d, 0x89, 0x2e, 0xcb, 0x60,
- 0xaf, 0x08, 0x1d, 0x8f, 0xe6, 0xa2, 0xcf, 0x38, 0x2a, 0x8e, 0x87, 0xc7, 0x4b, 0x7e, 0xd8, 0x5e,
- 0x3b, 0x0e, 0x92, 0x6a, 0x13, 0x7d, 0x23, 0x93, 0x7f, 0xb4, 0x60, 0x2b, 0x89, 0x56, 0x47, 0x6b,
- 0x0e, 0x91, 0x87, 0xf4, 0xab, 0x0e, 0x00, 0x6f, 0xa7, 0x48, 0x5f, 0x4e, 0xdb, 0xb6, 0x79, 0x64,
- 0x23, 0x45, 0x99, 0xf0, 0xa6, 0xa9, 0x25, 0x94, 0x16, 0x60, 0xad, 0x25, 0xf7, 0x90, 0x60, 0xf4,
- 0x9e, 0x73, 0x9b, 0x7e, 0xd1, 0x81, 0x13, 0x99, 0xe6, 0xe6, 0xd4, 0xdf, 0x32, 0xdf, 0x78, 0xb4,
- 0xa0, 0x59, 0x99, 0x49, 0xad, 0x75, 0xe3, 0xc9, 0x7f, 0x71, 0xc1, 0x78, 0x6d, 0x1c, 0xbd, 0x06,
- 0xc3, 0xd2, 0xf2, 0x21, 0xa7, 0xb7, 0xcd, 0xb7, 0x6e, 0xd5, 0xf1, 0x46, 0x42, 0x62, 0x9c, 0xf2,
- 0xcb, 0x84, 0x09, 0x16, 0x7a, 0x0a, 0x13, 0xbc, 0xbf, 0x2f, 0xe5, 0xe6, 0xdb, 0xa5, 0xfb, 0x8f,
- 0xc4, 0x2e, 0xfd, 0x90, 0x75, 0xbb, 0xf4, 0xc3, 0xc7, 0x6c, 0x97, 0xd6, 0x9c, 0x84, 0xc5, 0x7b,
- 0x70, 0x12, 0xbe, 0x06, 0xa7, 0x77, 0xd2, 0x43, 0xa7, 0x9a, 0x49, 0x22, 0x75, 0xd3, 0x93, 0xb9,
- 0xd6, 0x68, 0x7a, 0x80, 0x8e, 0x13, 0x12, 0x24, 0xda, 0x71, 0x35, 0x8d, 0x50, 0xbc, 0x9e, 0x43,
- 0x0e, 0xe7, 0x32, 0xc9, 0x7a, 0x7b, 0x06, 0x7b, 0xf0, 0xf6, 0xbc, 0xe5, 0xc0, 0x19, 0xaf, 0xe3,
- 0x9a, 0x1d, 0x26, 0x5b, 0x22, 0xe4, 0xe4, 0x86, 0x3d, 0x15, 0xc2, 0x20, 0x2f, 0xdc, 0x6a, 0x79,
- 0x45, 0x38, 0xbf, 0x41, 0xe8, 0xb1, 0xd4, 0xf5, 0xce, 0xe3, 0x5a, 0xf3, 0xfd, 0xe4, 0xdf, 0xc8,
- 0xc6, 0xf3, 0x00, 0x1b, 0xfa, 0x8f, 0xda, 0x3d, 0x6d, 0x5b, 0x88, 0xe9, 0x19, 0xb9, 0x87, 0x98,
- 0x9e, 0x8c, 0xeb, 0x6d, 0xd4, 0x92, 0xeb, 0x2d, 0x80, 0x09, 0xbf, 0xe9, 0xd5, 0xc8, 0x7a, 0xbb,
- 0xd1, 0xe0, 0xf7, 0x66, 0xe4, 0x6b, 0xc4, 0xb9, 0x16, 0xbc, 0x95, 0xb0, 0xe2, 0x35, 0xb2, 0xef,
- 0xd0, 0xab, 0xfb, 0x41, 0x4b, 0x19, 0x4a, 0xb8, 0x83, 0x36, 0x9d, 0xb0, 0x2c, 0x87, 0x20, 0x49,
- 0xe8, 0x68, 0xb3, 0xc0, 0x91, 0x21, 0x3e, 0x61, 0xaf, 0xa4, 0x60, 0xac, 0xe3, 0xa0, 0x65, 0x18,
- 0xae, 0x06, 0xb1, 0xb8, 0x31, 0x7c, 0x82, 0x09, 0xb3, 0x77, 0x51, 0x11, 0x38, 0x7f, 0xb5, 0xac,
- 0xee, 0x0a, 0x3f, 0x94, 0x93, 0x14, 0x53, 0x95, 0xe3, 0xb4, 0x3e, 0x5a, 0x65, 0xc4, 0xc4, 0x3b,
- 0x6b, 0x3c, 0x9e, 0xe3, 0x91, 0x2e, 0x0e, 0xa3, 0xf9, 0xab, 0xf2, 0xa5, 0xb8, 0x31, 0xc1, 0x4e,
- 0x3c, 0x98, 0x96, 0x52, 0xd0, 0x5e, 0x85, 0x3e, 0xb9, 0xef, 0xab, 0xd0, 0x2c, 0x1b, 0x6e, 0xd2,
- 0x50, 0xee, 0xe1, 0x0b, 0xd6, 0xb2, 0xe1, 0xa6, 0x91, 0x92, 0x22, 0x1b, 0x6e, 0x0a, 0xc0, 0x3a,
- 0x4b, 0xb4, 0xd6, 0xcd, 0x4d, 0x7e, 0x8a, 0x09, 0x8d, 0x83, 0x3b, 0xbd, 0x75, 0x7f, 0xe9, 0xe9,
- 0x7d, 0xfd, 0xa5, 0x1d, 0xfe, 0xdd, 0x33, 0x07, 0xf0, 0xef, 0xd6, 0x59, 0x9e, 0xd2, 0xc5, 0x39,
- 0xe1, 0x52, 0xb7, 0x70, 0xbe, 0x63, 0x99, 0x51, 0x78, 0xe4, 0x29, 0xfb, 0x17, 0x73, 0x06, 0x5d,
- 0x03, 0xc8, 0xcf, 0x1d, 0x3a, 0x80, 0x9c, 0x8a, 0xe7, 0x14, 0xce, 0x12, 0xde, 0x16, 0x85, 0x78,
- 0x4e, 0xc1, 0x58, 0xc7, 0xc9, 0x7a, 0x4b, 0x1f, 0x3c, 0x32, 0x6f, 0xe9, 0xe4, 0x31, 0x78, 0x4b,
- 0xcf, 0xf7, 0xec, 0x2d, 0xbd, 0x05, 0xa7, 0x5a, 0x61, 0x75, 0xde, 0x8f, 0xa3, 0x36, 0xbb, 0x48,
- 0x38, 0xdb, 0xae, 0xd6, 0x48, 0xc2, 0xdc, 0xad, 0x23, 0x97, 0xde, 0xa5, 0x37, 0xb2, 0xc5, 0x16,
- 0xb2, 0x5c, 0xa3, 0x99, 0x0a, 0xcc, 0x74, 0xc2, 0xa2, 0x6e, 0x73, 0x0a, 0x71, 0x1e, 0x0b, 0xdd,
- 0x4f, 0xfb, 0xc8, 0xf1, 0xf8, 0x69, 0x3f, 0x08, 0x43, 0x71, 0xbd, 0x9d, 0x54, 0xc3, 0x9b, 0x01,
- 0x73, 0xc6, 0x0f, 0xcf, 0xbe, 0x43, 0x99, 0xb2, 0x05, 0xfc, 0xce, 0xde, 0xd4, 0x84, 0xfc, 0x5f,
- 0xb3, 0x62, 0x0b, 0x08, 0xfa, 0x66, 0x97, 0xfb, 0x4a, 0xee, 0x51, 0xde, 0x57, 0x3a, 0x77, 0xa0,
- 0xbb, 0x4a, 0x79, 0xce, 0xe8, 0x47, 0x7f, 0xe6, 0x9c, 0xd1, 0x5f, 0x77, 0x60, 0x6c, 0x47, 0x77,
- 0x19, 0x08, 0x87, 0xb9, 0x85, 0xc0, 0x1d, 0xc3, 0x13, 0x31, 0xeb, 0x52, 0x39, 0x67, 0x80, 0xee,
- 0x64, 0x01, 0xd8, 0x6c, 0x49, 0x4e, 0x50, 0xd1, 0x63, 0xf7, 0x2b, 0xa8, 0xe8, 0x0d, 0x26, 0xc7,
- 0xe4, 0x21, 0x97, 0x79, 0xd1, 0xed, 0xc6, 0x14, 0x4b, 0x99, 0xa8, 0x42, 0x8a, 0x75, 0x7e, 0xe8,
- 0x0b, 0x0e, 0x4c, 0xc8, 0x73, 0x99, 0x70, 0xf9, 0xc5, 0x22, 0x2a, 0xd2, 0xe6, 0x71, 0x90, 0x85,
- 0xd5, 0x6f, 0x64, 0xf8, 0xe0, 0x0e, 0xce, 0x54, 0xaa, 0xab, 0x20, 0xb4, 0x5a, 0xcc, 0x82, 0x7f,
- 0x85, 0x0e, 0x33, 0x93, 0x82, 0xb1, 0x8e, 0x83, 0xbe, 0xe5, 0x40, 0xb1, 0x1e, 0x86, 0xdb, 0x71,
- 0xe9, 0x49, 0x26, 0xd0, 0x5f, 0xb0, 0xac, 0x9b, 0x5e, 0xa1, 0xb4, 0xb9, 0x52, 0xfa, 0xb4, 0xb4,
- 0x1d, 0x31, 0xd8, 0x9d, 0xbd, 0xa9, 0x71, 0xe3, 0x39, 0xa7, 0xf8, 0xcd, 0xb7, 0x35, 0x88, 0xb0,
- 0x6d, 0xb2, 0xa6, 0xa1, 0x2f, 0x3b, 0x30, 0x71, 0x33, 0x63, 0xd0, 0x10, 0x61, 0xa1, 0xd8, 0xbe,
- 0xa9, 0x84, 0x0f, 0x77, 0x16, 0x8a, 0x3b, 0x5a, 0x80, 0x3e, 0x6f, 0x1a, 0x3a, 0x79, 0xfc, 0xa8,
- 0xc5, 0x01, 0xcc, 0x18, 0x56, 0xf9, 0xb5, 0xa0, 0x7c, 0x8b, 0xe7, 0x3d, 0xc7, 0x87, 0x4c, 0xd2,
- 0xce, 0xa4, 0x1f, 0x2b, 0xa7, 0x2a, 0x31, 0xed, 0x2d, 0x16, 0x16, 0xbb, 0xf1, 0xf9, 0x75, 0x73,
- 0xcb, 0x97, 0xcf, 0xc2, 0xb8, 0xe9, 0xdb, 0x43, 0xef, 0x36, 0x9f, 0xea, 0xb8, 0x90, 0x7d, 0xf5,
- 0x60, 0x4c, 0xe2, 0x1b, 0x2f, 0x1f, 0x18, 0x4f, 0x13, 0x14, 0x8e, 0xf4, 0x69, 0x82, 0xbe, 0xe3,
- 0x79, 0x9a, 0x60, 0xe2, 0x28, 0x9e, 0x26, 0x38, 0x79, 0xa0, 0xa7, 0x09, 0xb4, 0xa7, 0x21, 0xfa,
- 0xef, 0xf2, 0x34, 0xc4, 0x0c, 0x9c, 0x90, 0x77, 0x7f, 0x88, 0xc8, 0xfe, 0xce, 0xdd, 0xfe, 0xea,
- 0x95, 0xf1, 0x39, 0xb3, 0x18, 0x67, 0xf1, 0xe9, 0x22, 0x2b, 0x06, 0xac, 0xe6, 0x80, 0xad, 0x77,
- 0xa3, 0xcc, 0xa9, 0xc5, 0x8e, 0xcf, 0x42, 0x44, 0xc9, 0x68, 0xe7, 0x22, 0x83, 0xdd, 0x91, 0xff,
- 0x60, 0xde, 0x02, 0xf4, 0x12, 0x94, 0xc2, 0xad, 0xad, 0x46, 0xe8, 0x55, 0xd3, 0xf7, 0x13, 0x64,
- 0x5c, 0x02, 0xbf, 0xab, 0xaa, 0xd2, 0xed, 0xae, 0x75, 0xc1, 0xc3, 0x5d, 0x29, 0xa0, 0xb7, 0xa8,
- 0x62, 0x92, 0x84, 0x11, 0xa9, 0xa6, 0xb6, 0x9a, 0x61, 0xd6, 0x67, 0x62, 0xbd, 0xcf, 0x65, 0x93,
- 0x0f, 0xef, 0xbd, 0xfa, 0x28, 0x99, 0x52, 0x9c, 0x6d, 0x16, 0x8a, 0xe0, 0x6c, 0x2b, 0xcf, 0x54,
- 0x14, 0x8b, 0x1b, 0x4b, 0xfb, 0x19, 0xac, 0xd4, 0x5b, 0xda, 0xb9, 0xc6, 0xa6, 0x18, 0x77, 0xa1,
- 0xac, 0xbf, 0x71, 0x30, 0x74, 0x3c, 0x6f, 0x1c, 0x7c, 0x1c, 0xa0, 0x22, 0xb3, 0xad, 0x49, 0xe3,
- 0xc3, 0xb2, 0x95, 0xab, 0x34, 0x9c, 0xa6, 0xf6, 0xac, 0xac, 0x62, 0x83, 0x35, 0x96, 0xe8, 0x7f,
- 0xe7, 0x3e, 0x02, 0xc2, 0x2d, 0x2c, 0x35, 0xeb, 0x73, 0xe2, 0x67, 0xee, 0x21, 0x90, 0x7f, 0xe0,
- 0xc0, 0x24, 0x9f, 0x79, 0x59, 0xe5, 0x9e, 0xaa, 0x16, 0xe2, 0x6e, 0x8f, 0xed, 0xd0, 0x15, 0x9e,
- 0x35, 0xc9, 0xe0, 0xca, 0x1c, 0xdd, 0xfb, 0xb4, 0x04, 0x7d, 0x35, 0xe7, 0x48, 0x71, 0xc2, 0x96,
- 0xcd, 0x32, 0xff, 0x29, 0x87, 0x53, 0xb7, 0x7b, 0x39, 0x45, 0xfc, 0xa3, 0xae, 0x26, 0x55, 0xc4,
- 0x9a, 0xf7, 0x4b, 0x47, 0x64, 0x52, 0xd5, 0xdf, 0x9b, 0x38, 0x90, 0x61, 0xf5, 0x8b, 0x0e, 0x4c,
- 0x78, 0x99, 0x50, 0x13, 0x66, 0x07, 0xb2, 0x62, 0x93, 0x9a, 0x89, 0xd2, 0xf8, 0x15, 0xa6, 0xe4,
- 0x65, 0xa3, 0x5a, 0x70, 0x07, 0x73, 0xf4, 0x43, 0x07, 0xce, 0x27, 0x5e, 0xbc, 0xcd, 0xb3, 0x39,
- 0xc7, 0xe9, 0x5d, 0x5d, 0xd1, 0xb8, 0xd3, 0x6c, 0x35, 0xbe, 0x62, 0x7d, 0x35, 0x6e, 0x74, 0xe7,
- 0xc9, 0xd7, 0xe5, 0xa3, 0x62, 0x5d, 0x9e, 0xdf, 0x07, 0x13, 0xef, 0xd7, 0xf4, 0xc9, 0xcf, 0x38,
- 0xfc, 0xd5, 0xaf, 0xae, 0x2a, 0xdf, 0xa6, 0xa9, 0xf2, 0xad, 0xd8, 0x7c, 0x77, 0x48, 0xd7, 0x3d,
- 0x7f, 0xd5, 0x81, 0xd3, 0x79, 0x3b, 0x52, 0x4e, 0x93, 0x3e, 0x6a, 0x36, 0xc9, 0xe2, 0x29, 0x4b,
- 0x6f, 0x90, 0x95, 0x67, 0x4f, 0x26, 0xaf, 0xc2, 0x23, 0x77, 0xfb, 0x8a, 0x77, 0xa3, 0x37, 0xa4,
- 0xab, 0xc5, 0x7f, 0x36, 0xac, 0x79, 0x21, 0x13, 0xd2, 0xb2, 0x1e, 0xc3, 0x1d, 0xc0, 0x80, 0x1f,
- 0x34, 0xfc, 0x80, 0x88, 0xfb, 0x9a, 0x36, 0xcf, 0xb0, 0xe2, 0xd9, 0x22, 0x4a, 0x1d, 0x0b, 0x2e,
- 0xf7, 0xd9, 0x29, 0x99, 0x7d, 0x08, 0xae, 0xff, 0xf8, 0x1f, 0x82, 0xbb, 0x09, 0xc3, 0x37, 0xfd,
- 0xa4, 0xce, 0x82, 0x29, 0x84, 0xaf, 0xcf, 0xc2, 0x3d, 0x47, 0x4a, 0x2e, 0xed, 0xfb, 0x0d, 0xc9,
- 0x00, 0xa7, 0xbc, 0xd0, 0x45, 0xce, 0x98, 0x45, 0x6e, 0x67, 0x43, 0x6a, 0x6f, 0xc8, 0x02, 0x9c,
- 0xe2, 0xd0, 0xc1, 0x1a, 0xa5, 0xbf, 0x64, 0x0e, 0x28, 0x91, 0x19, 0xd9, 0x46, 0xc6, 0x4b, 0x41,
- 0x91, 0xdf, 0x26, 0xbe, 0xa1, 0xf1, 0xc0, 0x06, 0x47, 0x95, 0x9c, 0x7a, 0xa8, 0x6b, 0x72, 0xea,
- 0xd7, 0x99, 0xc2, 0x96, 0xf8, 0x41, 0x9b, 0xac, 0x05, 0x22, 0xde, 0x7b, 0xc5, 0xce, 0xdd, 0x67,
- 0x4e, 0x93, 0x1f, 0xc1, 0xd3, 0xdf, 0x58, 0xe3, 0xa7, 0xb9, 0x5c, 0x46, 0xf6, 0x75, 0xb9, 0xa4,
- 0x26, 0x97, 0x51, 0xeb, 0x26, 0x97, 0x84, 0xb4, 0xac, 0x98, 0x5c, 0x7e, 0xa6, 0xcc, 0x01, 0x7f,
- 0xee, 0x00, 0x52, 0x7a, 0x97, 0x12, 0xa8, 0xc7, 0x10, 0x54, 0xf9, 0x09, 0x07, 0x20, 0x50, 0xcf,
- 0x85, 0xda, 0xdd, 0x05, 0x39, 0xcd, 0xb4, 0x01, 0x29, 0x0c, 0x6b, 0x3c, 0xdd, 0x3f, 0x75, 0xd2,
- 0xd8, 0xe5, 0xb4, 0xef, 0xc7, 0x10, 0x44, 0xb6, 0x6b, 0x06, 0x91, 0x6d, 0x58, 0x34, 0xdd, 0xab,
- 0x6e, 0x74, 0x09, 0x27, 0xfb, 0x49, 0x01, 0x4e, 0xe8, 0xc8, 0x65, 0x72, 0x1c, 0x1f, 0xfb, 0xa6,
- 0x11, 0x41, 0x7b, 0xcd, 0x6e, 0x7f, 0xcb, 0xc2, 0x03, 0x94, 0x17, 0xad, 0xfd, 0xf1, 0x4c, 0xb4,
- 0xf6, 0x0d, 0xfb, 0xac, 0xf7, 0x0f, 0xd9, 0xfe, 0xcf, 0x0e, 0x9c, 0xca, 0xd4, 0x38, 0x86, 0x09,
- 0xb6, 0x63, 0x4e, 0xb0, 0xe7, 0xad, 0xf7, 0xba, 0xcb, 0xec, 0xfa, 0x76, 0xa1, 0xa3, 0xb7, 0xec,
- 0x10, 0xf7, 0x69, 0x07, 0x8a, 0x54, 0x5b, 0x96, 0xf1, 0x5c, 0x1f, 0x3d, 0x92, 0x19, 0xc0, 0xf4,
- 0x7a, 0x21, 0x9d, 0x55, 0xfb, 0x18, 0x0c, 0x73, 0xee, 0x93, 0x9f, 0x72, 0x00, 0x52, 0xa4, 0xfb,
- 0xa5, 0x02, 0xbb, 0xdf, 0x2d, 0xc0, 0x99, 0xdc, 0x69, 0x84, 0x3e, 0xab, 0x2c, 0x72, 0x8e, 0xed,
- 0x68, 0x45, 0x83, 0x91, 0x6e, 0x98, 0x1b, 0x33, 0x0c, 0x73, 0xc2, 0x1e, 0x77, 0xbf, 0x0e, 0x30,
- 0x42, 0x4c, 0x6b, 0x83, 0xf5, 0x63, 0x27, 0x0d, 0x80, 0x55, 0x79, 0x8d, 0xfe, 0x02, 0x5e, 0xe2,
- 0x71, 0x7f, 0xa2, 0xdd, 0x70, 0x90, 0x1d, 0x3d, 0x06, 0x59, 0x71, 0xd3, 0x94, 0x15, 0xd8, 0xbe,
- 0x1f, 0xb9, 0x8b, 0xb0, 0x78, 0x05, 0xf2, 0x1c, 0xcb, 0xbd, 0x25, 0x81, 0x34, 0xae, 0xc3, 0x16,
- 0x7a, 0xbe, 0x0e, 0x3b, 0x06, 0x23, 0x2f, 0xfa, 0x2a, 0x81, 0xe8, 0xec, 0xf4, 0xf7, 0x7e, 0x74,
- 0xe1, 0x81, 0xef, 0xff, 0xe8, 0xc2, 0x03, 0x3f, 0xfc, 0xd1, 0x85, 0x07, 0x3e, 0x71, 0xfb, 0x82,
- 0xf3, 0xbd, 0xdb, 0x17, 0x9c, 0xef, 0xdf, 0xbe, 0xe0, 0xfc, 0xf0, 0xf6, 0x05, 0xe7, 0xdf, 0xde,
- 0xbe, 0xe0, 0xfc, 0xad, 0x7f, 0x77, 0xe1, 0x81, 0x17, 0x87, 0x64, 0xc7, 0xfe, 0x5f, 0x00, 0x00,
- 0x00, 0xff, 0xff, 0xc9, 0x42, 0x1f, 0x61, 0xd5, 0xd8, 0x00, 0x00,
+ // 11197 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x6d, 0x70, 0x24, 0xc7,
+ 0x75, 0x18, 0x67, 0x81, 0xc5, 0xc7, 0xc3, 0xc7, 0xe1, 0xfa, 0xbe, 0x96, 0x20, 0x79, 0xa0, 0x87,
+ 0x22, 0x43, 0x5a, 0x14, 0xce, 0x3c, 0x4a, 0x09, 0x23, 0x25, 0x92, 0xf0, 0x71, 0xc0, 0x81, 0x00,
+ 0x0e, 0x60, 0x2f, 0xee, 0xce, 0xa4, 0x68, 0x4a, 0x83, 0xdd, 0xc6, 0xee, 0x10, 0xbb, 0x33, 0xcb,
+ 0x99, 0x59, 0xdc, 0x81, 0x1f, 0xa2, 0x42, 0x7d, 0xc7, 0xb2, 0x15, 0xcb, 0x92, 0x2c, 0x29, 0x49,
+ 0x95, 0xa2, 0x48, 0x89, 0x22, 0xbb, 0x92, 0xb2, 0x7f, 0xa5, 0xec, 0x7f, 0xa9, 0x94, 0x4b, 0x29,
+ 0xa7, 0x12, 0xb9, 0xa2, 0x94, 0x55, 0x15, 0x1b, 0x8c, 0x2e, 0x89, 0x2a, 0x95, 0x44, 0x55, 0xb1,
+ 0x2a, 0x4e, 0xe2, 0xcb, 0x47, 0xa5, 0xfa, 0x73, 0xba, 0x67, 0x67, 0x71, 0x0b, 0x5c, 0x03, 0xa7,
+ 0xd8, 0xbf, 0x80, 0x7d, 0xfd, 0xfa, 0xbd, 0xee, 0x9e, 0xee, 0xd7, 0xaf, 0xdf, 0x7b, 0xfd, 0x1a,
+ 0xd6, 0x6b, 0x7e, 0x52, 0x6f, 0x6f, 0x4e, 0x57, 0xc2, 0xe6, 0x05, 0x2f, 0xaa, 0x85, 0xad, 0x28,
+ 0x7c, 0x99, 0xfd, 0xf3, 0xae, 0x1b, 0x61, 0xb4, 0xbd, 0xd5, 0x08, 0x6f, 0xc4, 0x17, 0x76, 0x9e,
+ 0xbe, 0xd0, 0xda, 0xae, 0x5d, 0xf0, 0x5a, 0x7e, 0x7c, 0x41, 0x42, 0x2f, 0xec, 0x3c, 0xe5, 0x35,
+ 0x5a, 0x75, 0xef, 0xa9, 0x0b, 0x35, 0x12, 0x90, 0xc8, 0x4b, 0x48, 0x75, 0xba, 0x15, 0x85, 0x49,
+ 0x88, 0x3e, 0x98, 0x52, 0x9c, 0x96, 0x14, 0xd9, 0x3f, 0x1f, 0x56, 0x14, 0xa7, 0x77, 0x9e, 0x9e,
+ 0x6e, 0x6d, 0xd7, 0xa6, 0x29, 0xc5, 0x69, 0x09, 0x9d, 0x96, 0x14, 0x27, 0xdf, 0xa5, 0xb5, 0xa9,
+ 0x16, 0xd6, 0xc2, 0x0b, 0x8c, 0xf0, 0x66, 0x7b, 0x8b, 0xfd, 0x62, 0x3f, 0xd8, 0x7f, 0x9c, 0xe1,
+ 0xa4, 0xbb, 0xfd, 0x4c, 0x3c, 0xed, 0x87, 0xb4, 0x7d, 0x17, 0x2a, 0x61, 0x44, 0x2e, 0xec, 0x74,
+ 0x34, 0x6a, 0xf2, 0x1d, 0x1a, 0x4e, 0x2b, 0x6c, 0xf8, 0x95, 0xdd, 0x3c, 0xac, 0x77, 0xa7, 0x58,
+ 0x4d, 0xaf, 0x52, 0xf7, 0x03, 0x12, 0xed, 0xa6, 0x5d, 0x6f, 0x92, 0xc4, 0xcb, 0xab, 0x75, 0xa1,
+ 0x5b, 0xad, 0xa8, 0x1d, 0x24, 0x7e, 0x93, 0x74, 0x54, 0xf8, 0x8b, 0x77, 0xaa, 0x10, 0x57, 0xea,
+ 0xa4, 0xe9, 0x75, 0xd4, 0x7b, 0xba, 0x5b, 0xbd, 0x76, 0xe2, 0x37, 0x2e, 0xf8, 0x41, 0x12, 0x27,
+ 0x51, 0xb6, 0x92, 0x7b, 0x09, 0x06, 0x66, 0x9a, 0x61, 0x3b, 0x48, 0xd0, 0xfb, 0xa0, 0xb8, 0xe3,
+ 0x35, 0xda, 0xa4, 0xe4, 0x3c, 0xec, 0x3c, 0x3e, 0x3c, 0xfb, 0xe8, 0x77, 0xf7, 0xa6, 0xee, 0xbb,
+ 0xb5, 0x37, 0x55, 0xbc, 0x46, 0x81, 0xb7, 0xf7, 0xa6, 0x4e, 0x93, 0xa0, 0x12, 0x56, 0xfd, 0xa0,
+ 0x76, 0xe1, 0xe5, 0x38, 0x0c, 0xa6, 0xaf, 0xb4, 0x9b, 0x9b, 0x24, 0xc2, 0xbc, 0x8e, 0xfb, 0xaf,
+ 0x0a, 0x70, 0x62, 0x26, 0xaa, 0xd4, 0xfd, 0x1d, 0x52, 0x4e, 0x28, 0xfd, 0xda, 0x2e, 0xaa, 0x43,
+ 0x5f, 0xe2, 0x45, 0x8c, 0xdc, 0xc8, 0xc5, 0xd5, 0xe9, 0xbb, 0xfd, 0xee, 0xd3, 0x1b, 0x5e, 0x24,
+ 0x69, 0xcf, 0x0e, 0xde, 0xda, 0x9b, 0xea, 0xdb, 0xf0, 0x22, 0x4c, 0x59, 0xa0, 0x06, 0xf4, 0x07,
+ 0x61, 0x40, 0x4a, 0x05, 0xc6, 0xea, 0xca, 0xdd, 0xb3, 0xba, 0x12, 0x06, 0xaa, 0x1f, 0xb3, 0x43,
+ 0xb7, 0xf6, 0xa6, 0xfa, 0x29, 0x04, 0x33, 0x2e, 0xb4, 0x5f, 0xaf, 0xfa, 0xad, 0x52, 0x9f, 0xad,
+ 0x7e, 0xbd, 0xe0, 0xb7, 0xcc, 0x7e, 0xbd, 0xe0, 0xb7, 0x30, 0x65, 0xe1, 0x7e, 0xb6, 0x00, 0xc3,
+ 0x33, 0x51, 0xad, 0xdd, 0x24, 0x41, 0x12, 0xa3, 0x37, 0x01, 0x5a, 0x5e, 0xe4, 0x35, 0x49, 0x42,
+ 0xa2, 0xb8, 0xe4, 0x3c, 0xdc, 0xf7, 0xf8, 0xc8, 0xc5, 0xe5, 0xbb, 0x67, 0xbf, 0x2e, 0x69, 0xce,
+ 0x22, 0xf1, 0xc9, 0x41, 0x81, 0x62, 0xac, 0xb1, 0x44, 0xaf, 0xc1, 0xb0, 0x17, 0x25, 0xfe, 0x96,
+ 0x57, 0x49, 0xe2, 0x52, 0x81, 0xf1, 0x7f, 0xf6, 0xee, 0xf9, 0xcf, 0x08, 0x92, 0xb3, 0x27, 0x05,
+ 0xfb, 0x61, 0x09, 0x89, 0x71, 0xca, 0xcf, 0xfd, 0xed, 0x7e, 0x18, 0x99, 0x89, 0x92, 0xc5, 0xb9,
+ 0x72, 0xe2, 0x25, 0xed, 0x18, 0xfd, 0x9e, 0x03, 0xa7, 0x62, 0x3e, 0x6c, 0x3e, 0x89, 0xd7, 0xa3,
+ 0xb0, 0x42, 0xe2, 0x98, 0x54, 0xc5, 0xb8, 0x6c, 0x59, 0x69, 0x97, 0x64, 0x36, 0x5d, 0xee, 0x64,
+ 0x74, 0x29, 0x48, 0xa2, 0xdd, 0xd9, 0xa7, 0x44, 0x9b, 0x4f, 0xe5, 0x60, 0xbc, 0xf5, 0xf6, 0x14,
+ 0x92, 0x5d, 0xa1, 0x94, 0xf8, 0x27, 0xc6, 0x79, 0xad, 0x46, 0x5f, 0x75, 0x60, 0xb4, 0x15, 0x56,
+ 0x63, 0x4c, 0x2a, 0x61, 0xbb, 0x45, 0xaa, 0x62, 0x78, 0x3f, 0x6c, 0xb7, 0x1b, 0xeb, 0x1a, 0x07,
+ 0xde, 0xfe, 0xd3, 0xa2, 0xfd, 0xa3, 0x7a, 0x11, 0x36, 0x9a, 0x82, 0x9e, 0x81, 0xd1, 0x20, 0x4c,
+ 0xca, 0x2d, 0x52, 0xf1, 0xb7, 0x7c, 0x52, 0x65, 0x13, 0x7f, 0x28, 0xad, 0x79, 0x45, 0x2b, 0xc3,
+ 0x06, 0xe6, 0xe4, 0x02, 0x94, 0xba, 0x8d, 0x1c, 0x9a, 0x80, 0xbe, 0x6d, 0xb2, 0xcb, 0x85, 0x0d,
+ 0xa6, 0xff, 0xa2, 0xd3, 0x52, 0x00, 0xd1, 0x65, 0x3c, 0x24, 0x24, 0xcb, 0x7b, 0x0b, 0xcf, 0x38,
+ 0x93, 0x1f, 0x80, 0x93, 0x1d, 0x4d, 0x3f, 0x08, 0x01, 0xf7, 0x7b, 0x03, 0x30, 0x24, 0x3f, 0x05,
+ 0x7a, 0x18, 0xfa, 0x03, 0xaf, 0x29, 0xe5, 0xdc, 0xa8, 0xe8, 0x47, 0xff, 0x15, 0xaf, 0x49, 0x57,
+ 0xb8, 0xd7, 0x24, 0x14, 0xa3, 0xe5, 0x25, 0x75, 0x46, 0x47, 0xc3, 0x58, 0xf7, 0x92, 0x3a, 0x66,
+ 0x25, 0xe8, 0x41, 0xe8, 0x6f, 0x86, 0x55, 0xc2, 0xc6, 0xa2, 0xc8, 0x25, 0xc4, 0x6a, 0x58, 0x25,
+ 0x98, 0x41, 0x69, 0xfd, 0xad, 0x28, 0x6c, 0x96, 0xfa, 0xcd, 0xfa, 0x0b, 0x51, 0xd8, 0xc4, 0xac,
+ 0x04, 0x7d, 0xc5, 0x81, 0x09, 0x39, 0xb7, 0x57, 0xc2, 0x8a, 0x97, 0xf8, 0x61, 0x50, 0x2a, 0x32,
+ 0x89, 0x82, 0xed, 0x2d, 0x29, 0x49, 0x79, 0xb6, 0x24, 0x9a, 0x30, 0x91, 0x2d, 0xc1, 0x1d, 0xad,
+ 0x40, 0x17, 0x01, 0x6a, 0x8d, 0x70, 0xd3, 0x6b, 0xd0, 0x01, 0x29, 0x0d, 0xb0, 0x2e, 0x28, 0xc9,
+ 0xb0, 0xa8, 0x4a, 0xb0, 0x86, 0x85, 0x6e, 0xc2, 0xa0, 0xc7, 0xa5, 0x7f, 0x69, 0x90, 0x75, 0xe2,
+ 0x39, 0x1b, 0x9d, 0x30, 0xb6, 0x93, 0xd9, 0x91, 0x5b, 0x7b, 0x53, 0x83, 0x02, 0x88, 0x25, 0x3b,
+ 0xf4, 0x24, 0x0c, 0x85, 0x2d, 0xda, 0x6e, 0xaf, 0x51, 0x1a, 0x62, 0x13, 0x73, 0x42, 0xb4, 0x75,
+ 0x68, 0x4d, 0xc0, 0xb1, 0xc2, 0x40, 0x4f, 0xc0, 0x60, 0xdc, 0xde, 0xa4, 0xdf, 0xb1, 0x34, 0xcc,
+ 0x3a, 0x76, 0x42, 0x20, 0x0f, 0x96, 0x39, 0x18, 0xcb, 0x72, 0xf4, 0x1e, 0x18, 0x89, 0x48, 0xa5,
+ 0x1d, 0xc5, 0x84, 0x7e, 0xd8, 0x12, 0x30, 0xda, 0xa7, 0x04, 0xfa, 0x08, 0x4e, 0x8b, 0xb0, 0x8e,
+ 0x87, 0xde, 0x0f, 0xe3, 0xf4, 0x03, 0x5f, 0xba, 0xd9, 0x8a, 0x48, 0x1c, 0xd3, 0xaf, 0x3a, 0xc2,
+ 0x18, 0x9d, 0x15, 0x35, 0xc7, 0x17, 0x8c, 0x52, 0x9c, 0xc1, 0x46, 0xaf, 0x03, 0x78, 0x4a, 0x66,
+ 0x94, 0x46, 0xd9, 0x60, 0xae, 0xd8, 0x9b, 0x11, 0x8b, 0x73, 0xb3, 0xe3, 0xf4, 0x3b, 0xa6, 0xbf,
+ 0xb1, 0xc6, 0x8f, 0x8e, 0x4f, 0x95, 0x34, 0x48, 0x42, 0xaa, 0xa5, 0x31, 0xd6, 0x61, 0x35, 0x3e,
+ 0xf3, 0x1c, 0x8c, 0x65, 0xb9, 0xfb, 0x37, 0x0b, 0xa0, 0x51, 0x41, 0xb3, 0x30, 0x24, 0xe4, 0x9a,
+ 0x58, 0x92, 0xb3, 0x8f, 0xc9, 0xef, 0x20, 0xbf, 0xe0, 0xed, 0xbd, 0x5c, 0x79, 0xa8, 0xea, 0xa1,
+ 0x37, 0x60, 0xa4, 0x15, 0x56, 0x57, 0x49, 0xe2, 0x55, 0xbd, 0xc4, 0x13, 0xbb, 0xb9, 0x85, 0x1d,
+ 0x46, 0x52, 0x9c, 0x3d, 0x41, 0x3f, 0xdd, 0x7a, 0xca, 0x02, 0xeb, 0xfc, 0xd0, 0xb3, 0x80, 0x62,
+ 0x12, 0xed, 0xf8, 0x15, 0x32, 0x53, 0xa9, 0x50, 0x95, 0x88, 0x2d, 0x80, 0x3e, 0xd6, 0x99, 0x49,
+ 0xd1, 0x19, 0x54, 0xee, 0xc0, 0xc0, 0x39, 0xb5, 0xdc, 0xef, 0x17, 0x60, 0x5c, 0xeb, 0x6b, 0x8b,
+ 0x54, 0xd0, 0xb7, 0x1d, 0x38, 0xa1, 0xb6, 0xb3, 0xd9, 0xdd, 0x2b, 0x74, 0x56, 0xf1, 0xcd, 0x8a,
+ 0xd8, 0xfc, 0xbe, 0x94, 0x97, 0xfa, 0x29, 0xf8, 0x70, 0x59, 0x7f, 0x4e, 0xf4, 0xe1, 0x44, 0xa6,
+ 0x14, 0x67, 0x9b, 0x35, 0xf9, 0x65, 0x07, 0x4e, 0xe7, 0x91, 0xc8, 0x91, 0xb9, 0x75, 0x5d, 0xe6,
+ 0x5a, 0x15, 0x5e, 0x94, 0x2b, 0xed, 0x8c, 0x2e, 0xc7, 0xff, 0x6f, 0x01, 0x26, 0xf4, 0x29, 0xc4,
+ 0x34, 0x81, 0x7f, 0xe2, 0xc0, 0x19, 0xd9, 0x03, 0x4c, 0xe2, 0x76, 0x23, 0x33, 0xbc, 0x4d, 0xab,
+ 0xc3, 0xcb, 0x77, 0xd2, 0x99, 0x3c, 0x7e, 0x7c, 0x98, 0x1f, 0x12, 0xc3, 0x7c, 0x26, 0x17, 0x07,
+ 0xe7, 0x37, 0x75, 0xf2, 0x9b, 0x0e, 0x4c, 0x76, 0x27, 0x9a, 0x33, 0xf0, 0x2d, 0x73, 0xe0, 0x5f,
+ 0xb0, 0xd7, 0x49, 0xce, 0x9e, 0x0d, 0x3f, 0xeb, 0xac, 0xfe, 0x01, 0x7e, 0x63, 0x08, 0x3a, 0xf6,
+ 0x10, 0xf4, 0x14, 0x8c, 0x08, 0x71, 0xbc, 0x12, 0xd6, 0x62, 0xd6, 0xc8, 0x21, 0xbe, 0xd6, 0x66,
+ 0x52, 0x30, 0xd6, 0x71, 0x50, 0x15, 0x0a, 0xf1, 0xd3, 0xa2, 0xe9, 0x16, 0xc4, 0x5b, 0xf9, 0x69,
+ 0xa5, 0x45, 0x0e, 0xdc, 0xda, 0x9b, 0x2a, 0x94, 0x9f, 0xc6, 0x85, 0xf8, 0x69, 0xaa, 0xa9, 0xd7,
+ 0xfc, 0xc4, 0x9e, 0xa6, 0xbe, 0xe8, 0x27, 0x8a, 0x0f, 0xd3, 0xd4, 0x17, 0xfd, 0x04, 0x53, 0x16,
+ 0xf4, 0x04, 0x52, 0x4f, 0x92, 0x16, 0xdb, 0xf1, 0xad, 0x9c, 0x40, 0x2e, 0x6f, 0x6c, 0xac, 0x2b,
+ 0x5e, 0x4c, 0xbf, 0xa0, 0x10, 0xcc, 0xb8, 0xa0, 0xcf, 0x38, 0x74, 0xc4, 0x79, 0x61, 0x18, 0xed,
+ 0x0a, 0xc5, 0xe1, 0xaa, 0xbd, 0x29, 0x10, 0x46, 0xbb, 0x8a, 0xb9, 0xf8, 0x90, 0xaa, 0x00, 0xeb,
+ 0xac, 0x59, 0xc7, 0xab, 0x5b, 0x31, 0xd3, 0x13, 0xec, 0x74, 0x7c, 0x7e, 0xa1, 0x9c, 0xe9, 0xf8,
+ 0xfc, 0x42, 0x19, 0x33, 0x2e, 0xf4, 0x83, 0x46, 0xde, 0x0d, 0xa1, 0x63, 0x58, 0xf8, 0xa0, 0xd8,
+ 0xbb, 0x61, 0x7e, 0x50, 0xec, 0xdd, 0xc0, 0x94, 0x05, 0xe5, 0x14, 0xc6, 0x31, 0x53, 0x29, 0xac,
+ 0x70, 0x5a, 0x2b, 0x97, 0x4d, 0x4e, 0x6b, 0xe5, 0x32, 0xa6, 0x2c, 0xd8, 0x24, 0xad, 0xc4, 0x4c,
+ 0x1f, 0xb1, 0x33, 0x49, 0xe7, 0x32, 0x9c, 0x16, 0xe7, 0xca, 0x98, 0xb2, 0xa0, 0x22, 0xc3, 0x7b,
+ 0xb5, 0x1d, 0x71, 0x65, 0x66, 0xe4, 0xe2, 0x9a, 0x85, 0xf9, 0x42, 0xc9, 0x29, 0x6e, 0xc3, 0xb7,
+ 0xf6, 0xa6, 0x8a, 0x0c, 0x84, 0x39, 0x23, 0xf7, 0x77, 0xfb, 0x52, 0x71, 0x21, 0xe5, 0x39, 0xfa,
+ 0x15, 0xb6, 0x11, 0x0a, 0x59, 0x20, 0x54, 0x5f, 0xe7, 0xc8, 0x54, 0xdf, 0x53, 0x7c, 0xc7, 0x33,
+ 0xd8, 0xe1, 0x2c, 0x7f, 0xf4, 0x05, 0xa7, 0xf3, 0x6c, 0xeb, 0xd9, 0xdf, 0xcb, 0xd2, 0x8d, 0x99,
+ 0xef, 0x15, 0xfb, 0x1e, 0x79, 0x27, 0x3f, 0xe3, 0xa4, 0x4a, 0x44, 0xdc, 0x6d, 0x1f, 0xf8, 0x88,
+ 0xb9, 0x0f, 0x58, 0x3c, 0x90, 0xeb, 0x72, 0xff, 0xb3, 0x0e, 0x8c, 0x49, 0x38, 0x55, 0x8f, 0x63,
+ 0x74, 0x13, 0x86, 0x64, 0x4b, 0xc5, 0xd7, 0xb3, 0x69, 0x0b, 0x50, 0x4a, 0xbc, 0x6a, 0x8c, 0xe2,
+ 0xe6, 0x7e, 0x7b, 0x00, 0x50, 0xba, 0x57, 0xb5, 0xc2, 0xd8, 0x67, 0x92, 0xe8, 0x10, 0xbb, 0x50,
+ 0xa0, 0xed, 0x42, 0xd7, 0x6c, 0xee, 0x42, 0x69, 0xb3, 0x8c, 0xfd, 0xe8, 0x0b, 0x19, 0xb9, 0xcd,
+ 0x37, 0xa6, 0x0f, 0x1f, 0x89, 0xdc, 0xd6, 0x9a, 0xb0, 0xbf, 0x04, 0xdf, 0x11, 0x12, 0x9c, 0x6f,
+ 0x5d, 0x3f, 0x6f, 0x57, 0x82, 0x6b, 0xad, 0xc8, 0xca, 0xf2, 0x88, 0x4b, 0x58, 0xbe, 0x77, 0x5d,
+ 0xb7, 0x2a, 0x61, 0x35, 0xae, 0xa6, 0xac, 0x8d, 0xb8, 0xac, 0x1d, 0xb0, 0xc5, 0x53, 0x93, 0xb5,
+ 0x59, 0x9e, 0x4a, 0xea, 0xbe, 0x2a, 0xa5, 0x2e, 0xdf, 0xb5, 0x9e, 0xb7, 0x2c, 0x75, 0x35, 0xbe,
+ 0x9d, 0xf2, 0xf7, 0x15, 0x38, 0xd3, 0x89, 0x87, 0xc9, 0x16, 0xba, 0x00, 0xc3, 0x95, 0x30, 0xd8,
+ 0xf2, 0x6b, 0xab, 0x5e, 0x4b, 0x9c, 0xd7, 0x94, 0x2c, 0x9a, 0x93, 0x05, 0x38, 0xc5, 0x41, 0x0f,
+ 0x71, 0xc1, 0xc3, 0x2d, 0x22, 0x23, 0x02, 0xb5, 0x6f, 0x99, 0xec, 0x32, 0x29, 0xf4, 0xde, 0xa1,
+ 0xaf, 0x7c, 0x7d, 0xea, 0xbe, 0x8f, 0xfd, 0xe1, 0xc3, 0xf7, 0xb9, 0xbf, 0xdf, 0x07, 0x0f, 0xe4,
+ 0xf2, 0x14, 0xda, 0xfa, 0x6f, 0x18, 0xda, 0xba, 0x56, 0x2e, 0xa4, 0xc8, 0x75, 0x9b, 0x8a, 0xac,
+ 0x46, 0x3e, 0x4f, 0x2f, 0xd7, 0x8a, 0x71, 0x7e, 0xa3, 0xe8, 0x40, 0x05, 0x5e, 0x93, 0xc4, 0x2d,
+ 0xaf, 0x42, 0x44, 0xef, 0xd5, 0x40, 0x5d, 0x91, 0x05, 0x38, 0xc5, 0xe1, 0x47, 0xe8, 0x2d, 0xaf,
+ 0xdd, 0x48, 0x84, 0xa1, 0x4c, 0x3b, 0x42, 0x33, 0x30, 0x96, 0xe5, 0xe8, 0x6f, 0x39, 0x80, 0x3a,
+ 0xb9, 0x8a, 0x85, 0xb8, 0x71, 0x14, 0xe3, 0x30, 0x7b, 0xf6, 0x96, 0x76, 0x08, 0xd7, 0x7a, 0x9a,
+ 0xd3, 0x0e, 0xed, 0x9b, 0x7e, 0x34, 0xdd, 0x87, 0xf8, 0xe1, 0xa0, 0x07, 0x1b, 0x1a, 0x33, 0xb5,
+ 0x54, 0x2a, 0x24, 0x8e, 0xb9, 0x39, 0x4e, 0x37, 0xb5, 0x30, 0x30, 0x96, 0xe5, 0x68, 0x0a, 0x8a,
+ 0x24, 0x8a, 0xc2, 0x48, 0x9c, 0xb5, 0xd9, 0x34, 0xbe, 0x44, 0x01, 0x98, 0xc3, 0xdd, 0x1f, 0x15,
+ 0xa0, 0xd4, 0xed, 0x74, 0x82, 0x7e, 0x4b, 0x3b, 0x57, 0x8b, 0x93, 0x93, 0x38, 0xf8, 0x85, 0x47,
+ 0x77, 0x26, 0xca, 0x1e, 0x00, 0xbb, 0x9c, 0xb0, 0x45, 0x29, 0xce, 0x36, 0x70, 0xf2, 0x8b, 0xda,
+ 0x09, 0x5b, 0x27, 0x91, 0xb3, 0xc1, 0x6f, 0x99, 0x1b, 0xfc, 0xba, 0xed, 0x4e, 0xe9, 0xdb, 0xfc,
+ 0x1f, 0x15, 0xe1, 0x94, 0x2c, 0x2d, 0x13, 0xba, 0x55, 0x3e, 0xd7, 0x26, 0xd1, 0x2e, 0xfa, 0x03,
+ 0x07, 0x4e, 0x7b, 0x59, 0xd3, 0x8d, 0x4f, 0x8e, 0x60, 0xa0, 0x35, 0xae, 0xd3, 0x33, 0x39, 0x1c,
+ 0xf9, 0x40, 0x5f, 0x14, 0x03, 0x7d, 0x3a, 0x0f, 0xa5, 0x8b, 0xdd, 0x3d, 0xb7, 0x03, 0xe8, 0x19,
+ 0x18, 0x95, 0x70, 0x66, 0xee, 0xe1, 0x4b, 0x5c, 0x19, 0xb7, 0x67, 0xb4, 0x32, 0x6c, 0x60, 0xd2,
+ 0x9a, 0x09, 0x69, 0xb6, 0x1a, 0x5e, 0x42, 0x34, 0x43, 0x91, 0xaa, 0xb9, 0xa1, 0x95, 0x61, 0x03,
+ 0x13, 0x3d, 0x06, 0x03, 0x41, 0x58, 0x25, 0x4b, 0x55, 0x61, 0x20, 0x1e, 0x17, 0x75, 0x06, 0xae,
+ 0x30, 0x28, 0x16, 0xa5, 0xe8, 0xd1, 0xd4, 0x1a, 0x57, 0x64, 0x4b, 0x68, 0x24, 0xcf, 0x12, 0x87,
+ 0xfe, 0x8e, 0x03, 0xc3, 0xb4, 0xc6, 0xc6, 0x6e, 0x8b, 0xd0, 0xbd, 0x8d, 0x7e, 0x91, 0xea, 0xd1,
+ 0x7c, 0x91, 0x2b, 0x92, 0x8d, 0x69, 0xea, 0x18, 0x56, 0xf0, 0xb7, 0xde, 0x9e, 0x1a, 0x92, 0x3f,
+ 0x70, 0xda, 0xaa, 0xc9, 0x45, 0xb8, 0xbf, 0xeb, 0xd7, 0x3c, 0x90, 0x2b, 0xe0, 0xaf, 0xc0, 0xb8,
+ 0xd9, 0x88, 0x03, 0xf9, 0x01, 0xfe, 0xb1, 0xb6, 0xec, 0x78, 0xbf, 0x84, 0x3c, 0xbb, 0x67, 0xda,
+ 0xac, 0x9a, 0x0c, 0xf3, 0x62, 0xea, 0x99, 0x93, 0x61, 0x5e, 0x4c, 0x86, 0x79, 0xf7, 0xf7, 0x9c,
+ 0x74, 0x69, 0x6a, 0x6a, 0x1e, 0xdd, 0x98, 0xdb, 0x51, 0x43, 0x08, 0x62, 0xb5, 0x31, 0x5f, 0xc5,
+ 0x2b, 0x98, 0xc2, 0xd1, 0x17, 0x35, 0xe9, 0x48, 0xab, 0xb5, 0x85, 0x5b, 0xc3, 0x92, 0x89, 0xde,
+ 0x20, 0xdc, 0x29, 0xff, 0x44, 0x01, 0xce, 0x36, 0xc1, 0xfd, 0x42, 0x01, 0x1e, 0xda, 0x57, 0x69,
+ 0xcd, 0x6d, 0xb8, 0x73, 0xcf, 0x1b, 0x4e, 0xb7, 0xb5, 0x88, 0xb4, 0xc2, 0xab, 0x78, 0x45, 0x7c,
+ 0x2f, 0xb5, 0xad, 0x61, 0x0e, 0xc6, 0xb2, 0x9c, 0xaa, 0x0e, 0xdb, 0x64, 0x77, 0x21, 0x8c, 0x9a,
+ 0x5e, 0x22, 0xa4, 0x83, 0x52, 0x1d, 0x96, 0x65, 0x01, 0x4e, 0x71, 0xdc, 0x3f, 0x70, 0x20, 0xdb,
+ 0x00, 0xe4, 0xc1, 0x78, 0x3b, 0x26, 0x11, 0xdd, 0x52, 0xcb, 0xa4, 0x12, 0x11, 0x39, 0x3d, 0x1f,
+ 0x9d, 0xe6, 0xde, 0x7e, 0xda, 0xc3, 0xe9, 0x4a, 0x18, 0x91, 0xe9, 0x9d, 0xa7, 0xa6, 0x39, 0xc6,
+ 0x32, 0xd9, 0x2d, 0x93, 0x06, 0xa1, 0x34, 0x66, 0xd1, 0xad, 0xbd, 0xa9, 0xf1, 0xab, 0x06, 0x01,
+ 0x9c, 0x21, 0x48, 0x59, 0xb4, 0xbc, 0x38, 0xbe, 0x11, 0x46, 0x55, 0xc1, 0xa2, 0x70, 0x60, 0x16,
+ 0xeb, 0x06, 0x01, 0x9c, 0x21, 0xe8, 0x7e, 0x9f, 0x1e, 0x1f, 0x75, 0xad, 0x15, 0x7d, 0x9d, 0xea,
+ 0x3e, 0x14, 0x32, 0xdb, 0x08, 0x37, 0xe7, 0xc2, 0x20, 0xf1, 0xfc, 0x80, 0xc8, 0x60, 0x81, 0x0d,
+ 0x4b, 0x3a, 0xb2, 0x41, 0x3b, 0xb5, 0xe1, 0x77, 0x96, 0xe1, 0x9c, 0xb6, 0x50, 0x1d, 0x67, 0xb3,
+ 0x11, 0x6e, 0x66, 0xbd, 0x80, 0x14, 0x09, 0xb3, 0x12, 0xf7, 0x27, 0x0e, 0x9c, 0xeb, 0xa2, 0x8c,
+ 0xa3, 0x2f, 0x3b, 0x30, 0xb6, 0xf9, 0x53, 0xd1, 0x37, 0xb3, 0x19, 0xe8, 0xfd, 0x30, 0x4e, 0x01,
+ 0x74, 0x27, 0x12, 0x73, 0xb3, 0x60, 0x7a, 0xa8, 0x66, 0x8d, 0x52, 0x9c, 0xc1, 0x76, 0x7f, 0xb5,
+ 0x00, 0x39, 0x5c, 0xd0, 0x93, 0x30, 0x44, 0x82, 0x6a, 0x2b, 0xf4, 0x83, 0x44, 0x08, 0x23, 0x25,
+ 0xf5, 0x2e, 0x09, 0x38, 0x56, 0x18, 0xe2, 0xfc, 0x21, 0x06, 0xa6, 0xd0, 0x71, 0xfe, 0x10, 0x2d,
+ 0x4f, 0x71, 0x50, 0x0d, 0x26, 0x3c, 0xee, 0x5f, 0x61, 0x73, 0x8f, 0x4d, 0xd3, 0xbe, 0x83, 0x4c,
+ 0xd3, 0xd3, 0xcc, 0xfd, 0x99, 0x21, 0x81, 0x3b, 0x88, 0xa2, 0xf7, 0xc0, 0x48, 0x3b, 0x26, 0xe5,
+ 0xf9, 0xe5, 0xb9, 0x88, 0x54, 0xf9, 0xa9, 0x58, 0xf3, 0xfb, 0x5d, 0x4d, 0x8b, 0xb0, 0x8e, 0xe7,
+ 0xfe, 0x53, 0x07, 0x06, 0x67, 0xbd, 0xca, 0x76, 0xb8, 0xb5, 0x45, 0x87, 0xa2, 0xda, 0x8e, 0x52,
+ 0xc3, 0x96, 0x36, 0x14, 0xf3, 0x02, 0x8e, 0x15, 0x06, 0xda, 0x80, 0x01, 0xbe, 0xe0, 0xc5, 0xb2,
+ 0xfb, 0x39, 0xad, 0x3f, 0x2a, 0x8e, 0x87, 0x4d, 0x87, 0x76, 0xe2, 0x37, 0xa6, 0x79, 0x1c, 0xcf,
+ 0xf4, 0x52, 0x90, 0xac, 0x45, 0xe5, 0x24, 0xf2, 0x83, 0xda, 0x2c, 0xd0, 0xed, 0x62, 0x81, 0xd1,
+ 0xc0, 0x82, 0x16, 0xed, 0x46, 0xd3, 0xbb, 0x29, 0xd9, 0x09, 0xf1, 0xa3, 0xba, 0xb1, 0x9a, 0x16,
+ 0x61, 0x1d, 0xcf, 0xfd, 0x7d, 0x07, 0x86, 0x67, 0xbd, 0xd8, 0xaf, 0xfc, 0x19, 0x12, 0x3e, 0x2f,
+ 0x41, 0x71, 0xce, 0xab, 0xd4, 0x09, 0xba, 0x9a, 0x3d, 0xf4, 0x8e, 0x5c, 0x7c, 0x3c, 0x8f, 0x8d,
+ 0x3a, 0x00, 0xeb, 0x9c, 0xc6, 0xba, 0x1d, 0x8d, 0xdd, 0xb7, 0x1d, 0x18, 0x9f, 0x6b, 0xf8, 0x24,
+ 0x48, 0xe6, 0x48, 0x94, 0xb0, 0x81, 0xab, 0xc1, 0x44, 0x45, 0x41, 0x0e, 0x33, 0x74, 0x6c, 0xb6,
+ 0xce, 0x65, 0x48, 0xe0, 0x0e, 0xa2, 0xa8, 0x0a, 0x27, 0x38, 0x2c, 0x5d, 0x15, 0x07, 0x1a, 0x3f,
+ 0x66, 0x1d, 0x9d, 0x33, 0x29, 0xe0, 0x2c, 0x49, 0xf7, 0xc7, 0x0e, 0x9c, 0x9b, 0x6b, 0xb4, 0xe3,
+ 0x84, 0x44, 0xd7, 0x85, 0x34, 0x92, 0xea, 0x2d, 0xfa, 0x08, 0x0c, 0x35, 0xa5, 0xc7, 0xd6, 0xb9,
+ 0xc3, 0x04, 0x66, 0xf2, 0x8c, 0x62, 0xd3, 0xc6, 0xac, 0x6d, 0xbe, 0x4c, 0x2a, 0xc9, 0x2a, 0x49,
+ 0xbc, 0x34, 0xbc, 0x20, 0x85, 0x61, 0x45, 0x15, 0xb5, 0xa0, 0x3f, 0x6e, 0x91, 0x8a, 0xbd, 0xe8,
+ 0x2e, 0xd9, 0x87, 0x72, 0x8b, 0x54, 0x52, 0xb9, 0xce, 0x7c, 0x8d, 0x8c, 0x93, 0xfb, 0xbf, 0x1c,
+ 0x78, 0xa0, 0x4b, 0x7f, 0x57, 0xfc, 0x38, 0x41, 0x2f, 0x76, 0xf4, 0x79, 0xba, 0xb7, 0x3e, 0xd3,
+ 0xda, 0xac, 0xc7, 0x4a, 0x20, 0x48, 0x88, 0xd6, 0xdf, 0x8f, 0x42, 0xd1, 0x4f, 0x48, 0x53, 0x9a,
+ 0xa1, 0x2d, 0x18, 0x8c, 0xba, 0xf4, 0x65, 0x76, 0x4c, 0xc6, 0xf8, 0x2d, 0x51, 0x7e, 0x98, 0xb3,
+ 0x75, 0xb7, 0x61, 0x60, 0x2e, 0x6c, 0xb4, 0x9b, 0x41, 0x6f, 0x91, 0x32, 0xc9, 0x6e, 0x8b, 0x64,
+ 0xf7, 0x48, 0xa6, 0xfe, 0xb3, 0x12, 0x69, 0x38, 0xea, 0xcb, 0x37, 0x1c, 0xb9, 0xff, 0xcc, 0x01,
+ 0xba, 0xaa, 0xaa, 0xbe, 0xf0, 0x24, 0x72, 0x72, 0x9c, 0xe1, 0x43, 0x3a, 0xb9, 0xdb, 0x7b, 0x53,
+ 0x63, 0x0a, 0x51, 0xa3, 0xff, 0x12, 0x0c, 0xc4, 0xec, 0x48, 0x2e, 0xda, 0xb0, 0x20, 0xf5, 0x67,
+ 0x7e, 0x50, 0xbf, 0xbd, 0x37, 0xd5, 0x53, 0xd8, 0xe6, 0xb4, 0xa2, 0x2d, 0x9c, 0x9e, 0x82, 0x2a,
+ 0x55, 0xf8, 0x9a, 0x24, 0x8e, 0xbd, 0x9a, 0x3c, 0xe1, 0x29, 0x85, 0x6f, 0x95, 0x83, 0xb1, 0x2c,
+ 0x77, 0xbf, 0xe4, 0xc0, 0x98, 0xda, 0xbc, 0xa8, 0xfa, 0x8e, 0xae, 0xe8, 0xdb, 0x1c, 0x9f, 0x29,
+ 0x0f, 0x75, 0x91, 0x38, 0x62, 0x23, 0xdf, 0x7f, 0x17, 0x7c, 0x37, 0x8c, 0x56, 0x49, 0x8b, 0x04,
+ 0x55, 0x12, 0x54, 0xe8, 0xf1, 0x9b, 0xce, 0x90, 0xe1, 0xd9, 0x09, 0x7a, 0xde, 0x9c, 0xd7, 0xe0,
+ 0xd8, 0xc0, 0x72, 0xbf, 0xe1, 0xc0, 0xfd, 0x8a, 0x5c, 0x99, 0x24, 0x98, 0x24, 0xd1, 0xae, 0x0a,
+ 0xd3, 0x3c, 0xd8, 0x6e, 0x75, 0x9d, 0xea, 0xbf, 0x49, 0xc4, 0x99, 0x1f, 0x6e, 0xbb, 0x1a, 0xe1,
+ 0xda, 0x32, 0x23, 0x82, 0x25, 0x35, 0xf7, 0x97, 0xfb, 0xe0, 0xb4, 0xde, 0x48, 0x25, 0x60, 0x3e,
+ 0xee, 0x00, 0xa8, 0x11, 0xa0, 0x1b, 0x72, 0x9f, 0x1d, 0xdf, 0x95, 0xf1, 0xa5, 0x52, 0x11, 0xa4,
+ 0xc0, 0x31, 0xd6, 0xd8, 0xa2, 0xe7, 0x61, 0x74, 0x87, 0x2e, 0x0a, 0xb2, 0x4a, 0xd5, 0x85, 0xb8,
+ 0xd4, 0xc7, 0x9a, 0x31, 0x95, 0xf7, 0x31, 0xaf, 0xa5, 0x78, 0xa9, 0x39, 0x40, 0x03, 0xc6, 0xd8,
+ 0x20, 0x45, 0x4f, 0x3a, 0x63, 0x91, 0xfe, 0x49, 0x84, 0x4d, 0xfc, 0x43, 0x16, 0xfb, 0x98, 0xfd,
+ 0xea, 0xb3, 0x27, 0x6f, 0xed, 0x4d, 0x8d, 0x19, 0x20, 0x6c, 0x36, 0xc2, 0x7d, 0x1e, 0xd8, 0x58,
+ 0xf8, 0x41, 0x9b, 0xac, 0x05, 0xe8, 0x11, 0x69, 0xa3, 0xe3, 0x7e, 0x15, 0x25, 0x39, 0x74, 0x3b,
+ 0x1d, 0x3d, 0xcb, 0x6e, 0x79, 0x7e, 0x83, 0x85, 0x2f, 0x52, 0x2c, 0x75, 0x96, 0x5d, 0x60, 0x50,
+ 0x2c, 0x4a, 0xdd, 0x69, 0x18, 0x9c, 0xa3, 0x7d, 0x27, 0x11, 0xa5, 0xab, 0x47, 0x1d, 0x8f, 0x19,
+ 0x51, 0xc7, 0x32, 0xba, 0x78, 0x03, 0xce, 0xcc, 0x45, 0xc4, 0x4b, 0x48, 0xf9, 0xe9, 0xd9, 0x76,
+ 0x65, 0x9b, 0x24, 0x3c, 0xb4, 0x2b, 0x46, 0xef, 0x83, 0xb1, 0x90, 0x6d, 0x19, 0x2b, 0x61, 0x65,
+ 0xdb, 0x0f, 0x6a, 0xc2, 0xe4, 0x7a, 0x46, 0x50, 0x19, 0x5b, 0xd3, 0x0b, 0xb1, 0x89, 0xeb, 0xfe,
+ 0xfb, 0x02, 0x8c, 0xce, 0x45, 0x61, 0x20, 0xc5, 0xe2, 0x31, 0x6c, 0x65, 0x89, 0xb1, 0x95, 0x59,
+ 0x70, 0x77, 0xea, 0xed, 0xef, 0xb6, 0x9d, 0xa1, 0xd7, 0x95, 0x88, 0xec, 0xb3, 0x75, 0x04, 0x31,
+ 0xf8, 0x32, 0xda, 0xe9, 0xc7, 0x36, 0x05, 0xa8, 0xfb, 0x1f, 0x1c, 0x98, 0xd0, 0xd1, 0x8f, 0x61,
+ 0x07, 0x8d, 0xcd, 0x1d, 0xf4, 0x8a, 0xdd, 0xfe, 0x76, 0xd9, 0x36, 0xdf, 0x1e, 0x34, 0xfb, 0xc9,
+ 0x7c, 0xdd, 0x5f, 0x71, 0x60, 0xf4, 0x86, 0x06, 0x10, 0x9d, 0xb5, 0xad, 0xc4, 0xbc, 0x43, 0x8a,
+ 0x19, 0x1d, 0x7a, 0x3b, 0xf3, 0x1b, 0x1b, 0x2d, 0xa1, 0x72, 0x3f, 0xae, 0xd4, 0x49, 0xb5, 0xdd,
+ 0x90, 0xdb, 0xb7, 0x1a, 0xd2, 0xb2, 0x80, 0x63, 0x85, 0x81, 0x5e, 0x84, 0x93, 0x95, 0x30, 0xa8,
+ 0xb4, 0xa3, 0x88, 0x04, 0x95, 0xdd, 0x75, 0x76, 0x47, 0x42, 0x6c, 0x88, 0xd3, 0xa2, 0xda, 0xc9,
+ 0xb9, 0x2c, 0xc2, 0xed, 0x3c, 0x20, 0xee, 0x24, 0xc4, 0x9d, 0x05, 0x31, 0xdd, 0xb2, 0xc4, 0x81,
+ 0x4b, 0x73, 0x16, 0x30, 0x30, 0x96, 0xe5, 0xe8, 0x2a, 0x9c, 0x8b, 0x13, 0x2f, 0x4a, 0xfc, 0xa0,
+ 0x36, 0x4f, 0xbc, 0x6a, 0xc3, 0x0f, 0xe8, 0x51, 0x22, 0x0c, 0xaa, 0xdc, 0x95, 0xd8, 0x37, 0xfb,
+ 0xc0, 0xad, 0xbd, 0xa9, 0x73, 0xe5, 0x7c, 0x14, 0xdc, 0xad, 0x2e, 0x7a, 0x09, 0x26, 0x85, 0x3b,
+ 0x62, 0xab, 0xdd, 0x78, 0x36, 0xdc, 0x8c, 0x2f, 0xfb, 0x31, 0x3d, 0xc7, 0xaf, 0xf8, 0x4d, 0x3f,
+ 0x61, 0x0e, 0xc3, 0xe2, 0xec, 0xf9, 0x5b, 0x7b, 0x53, 0x93, 0xe5, 0xae, 0x58, 0x78, 0x1f, 0x0a,
+ 0x08, 0xc3, 0x59, 0x2e, 0xfc, 0x3a, 0x68, 0x0f, 0x32, 0xda, 0x93, 0xb7, 0xf6, 0xa6, 0xce, 0x2e,
+ 0xe4, 0x62, 0xe0, 0x2e, 0x35, 0xe9, 0x17, 0x4c, 0xfc, 0x26, 0x79, 0x35, 0x0c, 0x08, 0x0b, 0x54,
+ 0xd1, 0xbe, 0xe0, 0x86, 0x80, 0x63, 0x85, 0x81, 0x5e, 0x4e, 0x67, 0x22, 0x5d, 0x2e, 0x22, 0xe0,
+ 0xe4, 0xe0, 0x12, 0x8e, 0x1d, 0x4d, 0xae, 0x6b, 0x94, 0x58, 0x24, 0xa5, 0x41, 0x1b, 0x7d, 0xc2,
+ 0x81, 0xd1, 0x38, 0x09, 0xd5, 0xbd, 0x06, 0x11, 0x71, 0x62, 0x61, 0xda, 0x97, 0x35, 0xaa, 0x5c,
+ 0xf1, 0xd1, 0x21, 0xd8, 0xe0, 0x8a, 0xde, 0x09, 0xc3, 0x72, 0x02, 0xc7, 0xa5, 0x11, 0xa6, 0x2b,
+ 0xb1, 0x63, 0x9c, 0x9c, 0xdf, 0x31, 0x4e, 0xcb, 0xa9, 0x2a, 0x7b, 0xa3, 0x4e, 0x02, 0x16, 0x73,
+ 0xab, 0xa9, 0xb2, 0xd7, 0xeb, 0x24, 0xc0, 0xac, 0xc4, 0xfd, 0x51, 0x1f, 0xa0, 0x4e, 0xc1, 0x87,
+ 0x96, 0x61, 0xc0, 0xab, 0x24, 0xfe, 0x8e, 0x8c, 0x37, 0x7c, 0x24, 0x4f, 0x29, 0xe0, 0x03, 0x88,
+ 0xc9, 0x16, 0xa1, 0xf3, 0x9e, 0xa4, 0xd2, 0x72, 0x86, 0x55, 0xc5, 0x82, 0x04, 0x0a, 0xe1, 0x64,
+ 0xc3, 0x8b, 0x13, 0xd9, 0xc2, 0x2a, 0xfd, 0x90, 0x62, 0xbb, 0xf8, 0xd9, 0xde, 0x3e, 0x15, 0xad,
+ 0x31, 0x7b, 0x86, 0xae, 0xc7, 0x95, 0x2c, 0x21, 0xdc, 0x49, 0x1b, 0xbd, 0xc9, 0xb4, 0x2b, 0xae,
+ 0xfa, 0x4a, 0xb5, 0x66, 0xd9, 0x8a, 0xe6, 0xc1, 0x69, 0x1a, 0x9a, 0x95, 0x60, 0x83, 0x35, 0x96,
+ 0xe8, 0x02, 0x0c, 0xb3, 0x75, 0x43, 0xaa, 0x84, 0xaf, 0xfe, 0xbe, 0x54, 0x09, 0x2e, 0xcb, 0x02,
+ 0x9c, 0xe2, 0x68, 0x5a, 0x06, 0x5f, 0xf0, 0x5d, 0xb4, 0x0c, 0xf4, 0x0c, 0x14, 0x5b, 0x75, 0x2f,
+ 0x96, 0x31, 0xec, 0xae, 0x94, 0xda, 0xeb, 0x14, 0xc8, 0x44, 0x93, 0xf6, 0x2d, 0x19, 0x10, 0xf3,
+ 0x0a, 0xee, 0x3f, 0x07, 0x18, 0x9c, 0x9f, 0x59, 0xdc, 0xf0, 0xe2, 0xed, 0x1e, 0xce, 0x40, 0x74,
+ 0x19, 0x0a, 0x65, 0x35, 0x2b, 0x48, 0xa5, 0x12, 0x8b, 0x15, 0x06, 0x0a, 0x60, 0xc0, 0x0f, 0xa8,
+ 0xe4, 0x29, 0x8d, 0xdb, 0xf2, 0x33, 0xa8, 0xf3, 0x1c, 0x33, 0x04, 0x2d, 0x31, 0xea, 0x58, 0x70,
+ 0x41, 0xaf, 0xc3, 0xb0, 0x27, 0xaf, 0x10, 0x89, 0xfd, 0x7f, 0xd9, 0x86, 0x01, 0x5d, 0x90, 0xd4,
+ 0x43, 0x98, 0x04, 0x08, 0xa7, 0x0c, 0xd1, 0xc7, 0x1c, 0x18, 0x91, 0x5d, 0xc7, 0x64, 0x4b, 0xf8,
+ 0xb6, 0x57, 0xed, 0xf5, 0x19, 0x93, 0x2d, 0x1e, 0xdf, 0xa2, 0x01, 0xb0, 0xce, 0xb2, 0xe3, 0xcc,
+ 0x54, 0xec, 0xe5, 0xcc, 0x84, 0x6e, 0xc0, 0xf0, 0x0d, 0x3f, 0xa9, 0xb3, 0x1d, 0x5e, 0xf8, 0xd4,
+ 0x16, 0xee, 0xbe, 0xd5, 0x94, 0x5c, 0x3a, 0x62, 0xd7, 0x25, 0x03, 0x9c, 0xf2, 0xa2, 0xcb, 0x81,
+ 0xfe, 0x60, 0x57, 0xb0, 0xd8, 0xde, 0x30, 0x6c, 0x56, 0x60, 0x05, 0x38, 0xc5, 0xa1, 0x43, 0x3c,
+ 0x4a, 0x7f, 0x95, 0xc9, 0x2b, 0x6d, 0x2a, 0x5a, 0x44, 0xcc, 0xa2, 0x85, 0x79, 0x25, 0x29, 0xf2,
+ 0xc1, 0xba, 0xae, 0xf1, 0xc0, 0x06, 0x47, 0x25, 0x3a, 0x87, 0xbb, 0x89, 0x4e, 0xf4, 0x3a, 0x3f,
+ 0xc3, 0xf1, 0xc3, 0x84, 0xd8, 0x0d, 0x56, 0xec, 0x9c, 0x6f, 0x38, 0x4d, 0x7e, 0xad, 0x21, 0xfd,
+ 0x8d, 0x35, 0x7e, 0x54, 0x62, 0x84, 0xc1, 0xa5, 0x9b, 0x7e, 0x22, 0x2e, 0x63, 0x28, 0x89, 0xb1,
+ 0xc6, 0xa0, 0x58, 0x94, 0xf2, 0xd8, 0x0d, 0x3a, 0x09, 0x62, 0xb1, 0x0b, 0x68, 0xb1, 0x1b, 0x0c,
+ 0x8c, 0x65, 0x39, 0xfa, 0xdb, 0x0e, 0x14, 0xeb, 0x61, 0xb8, 0x1d, 0x97, 0xc6, 0xd8, 0xe4, 0xb0,
+ 0xa0, 0x53, 0x0b, 0x89, 0x33, 0x7d, 0x99, 0x92, 0x35, 0xaf, 0x97, 0x15, 0x19, 0xec, 0xf6, 0xde,
+ 0xd4, 0xf8, 0x8a, 0xbf, 0x45, 0x2a, 0xbb, 0x95, 0x06, 0x61, 0x90, 0xb7, 0xde, 0xd6, 0x20, 0x97,
+ 0x76, 0x48, 0x90, 0x60, 0xde, 0xaa, 0xc9, 0xcf, 0x3a, 0x00, 0x29, 0xa1, 0x1c, 0x27, 0x29, 0x31,
+ 0xc3, 0x0a, 0x2c, 0x1c, 0xa8, 0x8d, 0xa6, 0xe9, 0x5e, 0xd7, 0x7f, 0xe9, 0xc0, 0x08, 0xed, 0x9c,
+ 0x14, 0x81, 0x8f, 0xc1, 0x40, 0xe2, 0x45, 0x35, 0x22, 0x1d, 0x05, 0xea, 0x73, 0x6c, 0x30, 0x28,
+ 0x16, 0xa5, 0x28, 0x80, 0x62, 0xe2, 0xc5, 0xdb, 0x52, 0x8d, 0x5f, 0xb2, 0x36, 0xc4, 0xa9, 0x06,
+ 0x4f, 0x7f, 0xc5, 0x98, 0xb3, 0x41, 0x8f, 0xc3, 0x10, 0xdd, 0x3a, 0x16, 0xbc, 0x58, 0xc6, 0xee,
+ 0x8c, 0x52, 0x21, 0xbe, 0x20, 0x60, 0x58, 0x95, 0xba, 0xbf, 0x5a, 0x80, 0xfe, 0x79, 0x7e, 0xa0,
+ 0x1b, 0x88, 0xc3, 0x76, 0x54, 0x21, 0x42, 0xb1, 0xb7, 0x30, 0xa7, 0x29, 0xdd, 0x32, 0xa3, 0xa9,
+ 0x1d, 0xa9, 0xd8, 0x6f, 0x2c, 0x78, 0xa1, 0x2f, 0x3a, 0x30, 0x9e, 0x44, 0x5e, 0x10, 0x6f, 0x31,
+ 0x97, 0x8c, 0x1f, 0x06, 0x62, 0x88, 0x2c, 0xcc, 0xc2, 0x0d, 0x83, 0x6e, 0x39, 0x21, 0xad, 0xd4,
+ 0x33, 0x64, 0x96, 0xe1, 0x4c, 0x1b, 0xdc, 0x5f, 0x73, 0x00, 0xd2, 0xd6, 0xa3, 0xcf, 0x38, 0x30,
+ 0xe6, 0xe9, 0x31, 0xa3, 0x62, 0x8c, 0xd6, 0xec, 0xf9, 0x6f, 0x19, 0x59, 0x6e, 0xcb, 0x30, 0x40,
+ 0xd8, 0x64, 0xec, 0xbe, 0x07, 0x8a, 0x6c, 0x75, 0xb0, 0x43, 0x8f, 0xb0, 0x7d, 0x67, 0x8d, 0x5d,
+ 0xd2, 0x26, 0x8e, 0x15, 0x86, 0xfb, 0x22, 0x8c, 0x5f, 0xba, 0x49, 0x2a, 0xed, 0x24, 0x8c, 0xb8,
+ 0xe5, 0xbf, 0xcb, 0x1d, 0x21, 0xe7, 0x50, 0x77, 0x84, 0xbe, 0xe3, 0xc0, 0x88, 0x16, 0x40, 0x48,
+ 0x77, 0xea, 0xda, 0x5c, 0x99, 0x1b, 0x38, 0xc4, 0x50, 0x2d, 0x5b, 0x09, 0x51, 0xe4, 0x24, 0xd3,
+ 0x6d, 0x44, 0x81, 0x70, 0xca, 0xf0, 0x0e, 0x01, 0x7e, 0xee, 0xef, 0x3a, 0x70, 0x26, 0x37, 0xda,
+ 0xf1, 0x1e, 0x37, 0xdb, 0x70, 0xb2, 0x17, 0x7a, 0x70, 0xb2, 0xff, 0xa6, 0x03, 0x29, 0x25, 0x2a,
+ 0x8a, 0x36, 0xd3, 0x96, 0x6b, 0xa2, 0x48, 0x70, 0x12, 0xa5, 0xe8, 0x75, 0x38, 0x67, 0x7e, 0xc1,
+ 0x43, 0xfa, 0x5b, 0xf8, 0xe1, 0x34, 0x9f, 0x12, 0xee, 0xc6, 0xc2, 0xfd, 0xaa, 0x03, 0xc5, 0x45,
+ 0xaf, 0x5d, 0x23, 0x3d, 0x99, 0xcb, 0xa8, 0x1c, 0x8b, 0x88, 0xd7, 0x48, 0xe4, 0xd1, 0x41, 0xc8,
+ 0x31, 0x2c, 0x60, 0x58, 0x95, 0xa2, 0x19, 0x18, 0x0e, 0x5b, 0xc4, 0xf0, 0x11, 0x3e, 0x22, 0x47,
+ 0x6f, 0x4d, 0x16, 0xd0, 0x6d, 0x87, 0x71, 0x57, 0x10, 0x9c, 0xd6, 0x72, 0xbf, 0x36, 0x00, 0x23,
+ 0xda, 0xbd, 0x18, 0xaa, 0x0b, 0x44, 0xa4, 0x15, 0x66, 0xf5, 0x65, 0x3a, 0x61, 0x30, 0x2b, 0xa1,
+ 0x6b, 0x30, 0x22, 0x3b, 0x7e, 0xcc, 0xc5, 0x96, 0xb1, 0x06, 0xb1, 0x80, 0x63, 0x85, 0x81, 0xa6,
+ 0xa0, 0x58, 0x25, 0xad, 0xa4, 0xce, 0x9a, 0xd7, 0xcf, 0x83, 0x03, 0xe7, 0x29, 0x00, 0x73, 0x38,
+ 0x45, 0xd8, 0x22, 0x49, 0xa5, 0xce, 0x2c, 0xc3, 0x22, 0x7a, 0x70, 0x81, 0x02, 0x30, 0x87, 0xe7,
+ 0x78, 0x31, 0x8b, 0x47, 0xef, 0xc5, 0x1c, 0xb0, 0xec, 0xc5, 0x44, 0x2d, 0x38, 0x15, 0xc7, 0xf5,
+ 0xf5, 0xc8, 0xdf, 0xf1, 0x12, 0x92, 0xce, 0xbe, 0xc1, 0x83, 0xf0, 0x39, 0xc7, 0x6e, 0xaa, 0x97,
+ 0x2f, 0x67, 0xa9, 0xe0, 0x3c, 0xd2, 0xa8, 0x0c, 0x67, 0xfc, 0x20, 0x26, 0x95, 0x76, 0x44, 0x96,
+ 0x6a, 0x41, 0x18, 0x91, 0xcb, 0x61, 0x4c, 0xc9, 0x89, 0x7b, 0xb6, 0x2a, 0x9e, 0x76, 0x29, 0x0f,
+ 0x09, 0xe7, 0xd7, 0x45, 0x8b, 0x70, 0xb2, 0xea, 0xc7, 0xde, 0x66, 0x83, 0x94, 0xdb, 0x9b, 0xcd,
+ 0x90, 0x1f, 0xcd, 0x87, 0x19, 0xc1, 0xfb, 0xa5, 0x1d, 0x69, 0x3e, 0x8b, 0x80, 0x3b, 0xeb, 0xa0,
+ 0x67, 0x60, 0x34, 0xf6, 0x83, 0x5a, 0x83, 0xcc, 0x46, 0x5e, 0x50, 0xa9, 0x8b, 0x0b, 0xba, 0xca,
+ 0xde, 0x5e, 0xd6, 0xca, 0xb0, 0x81, 0xc9, 0xd6, 0x3c, 0xaf, 0x93, 0xd1, 0x06, 0x05, 0xb6, 0x28,
+ 0x45, 0x33, 0x70, 0x42, 0xf6, 0xa1, 0xbc, 0xed, 0xb7, 0x36, 0x56, 0xca, 0x4c, 0x2b, 0x1c, 0x4a,
+ 0xa3, 0x85, 0x96, 0xcc, 0x62, 0x9c, 0xc5, 0x77, 0x7f, 0xe0, 0xc0, 0xa8, 0x1e, 0x0e, 0x4f, 0x95,
+ 0x75, 0xa8, 0xcf, 0x2f, 0x94, 0xf9, 0x76, 0x62, 0x4f, 0x69, 0xb8, 0xac, 0x68, 0xa6, 0xe7, 0xed,
+ 0x14, 0x86, 0x35, 0x9e, 0x3d, 0x5c, 0x6e, 0x7f, 0x04, 0x8a, 0x5b, 0x21, 0xd5, 0x69, 0xfa, 0x4c,
+ 0x5b, 0xff, 0x02, 0x05, 0x62, 0x5e, 0xe6, 0xfe, 0x37, 0x07, 0xce, 0xe6, 0x47, 0xfa, 0xff, 0x34,
+ 0x74, 0xf2, 0x22, 0x00, 0xed, 0x8a, 0xb1, 0x2f, 0x68, 0xe9, 0x2d, 0x64, 0x09, 0xd6, 0xb0, 0x7a,
+ 0xeb, 0xf6, 0xbf, 0x28, 0x80, 0xc6, 0x13, 0x7d, 0xce, 0x81, 0x31, 0xca, 0x76, 0x39, 0xda, 0x34,
+ 0x7a, 0xbb, 0x66, 0xa7, 0xb7, 0x8a, 0x6c, 0xea, 0xd2, 0x30, 0xc0, 0xd8, 0x64, 0x8e, 0xde, 0x09,
+ 0xc3, 0x5e, 0xb5, 0x1a, 0x91, 0x38, 0x56, 0xce, 0x41, 0x66, 0xf0, 0x9a, 0x91, 0x40, 0x9c, 0x96,
+ 0x53, 0x39, 0x5c, 0xaf, 0x6e, 0xc5, 0x54, 0xb4, 0x09, 0xd9, 0xaf, 0xe4, 0x30, 0x65, 0x42, 0xe1,
+ 0x58, 0x61, 0xa0, 0x6b, 0x70, 0xb6, 0xea, 0x25, 0x1e, 0x57, 0x01, 0x49, 0xb4, 0x1e, 0x85, 0x09,
+ 0xa9, 0xb0, 0x7d, 0x83, 0x07, 0xb1, 0x9e, 0x17, 0x75, 0xcf, 0xce, 0xe7, 0x62, 0xe1, 0x2e, 0xb5,
+ 0xdd, 0x5f, 0xea, 0x07, 0xb3, 0x4f, 0xa8, 0x0a, 0x27, 0xb6, 0xa3, 0xcd, 0x39, 0x16, 0xb3, 0x71,
+ 0x98, 0xd8, 0x09, 0x16, 0xd3, 0xb0, 0x6c, 0x52, 0xc0, 0x59, 0x92, 0x82, 0xcb, 0x32, 0xd9, 0x4d,
+ 0xbc, 0xcd, 0x43, 0x47, 0x4e, 0x2c, 0x9b, 0x14, 0x70, 0x96, 0x24, 0x7a, 0x0f, 0x8c, 0x6c, 0x47,
+ 0x9b, 0x72, 0xf7, 0xc8, 0x86, 0xe1, 0x2c, 0xa7, 0x45, 0x58, 0xc7, 0xa3, 0x9f, 0x66, 0x3b, 0xda,
+ 0xa4, 0x1b, 0xb6, 0x4c, 0x22, 0xa1, 0x3e, 0xcd, 0xb2, 0x80, 0x63, 0x85, 0x81, 0x5a, 0x80, 0xb6,
+ 0xe5, 0xe8, 0xa9, 0x08, 0x15, 0xb1, 0xc9, 0xf5, 0x1e, 0xe0, 0xc2, 0xae, 0x06, 0x2c, 0x77, 0xd0,
+ 0xc1, 0x39, 0xb4, 0xd1, 0xf3, 0x70, 0x6e, 0x3b, 0xda, 0x14, 0x7a, 0xcc, 0x7a, 0xe4, 0x07, 0x15,
+ 0xbf, 0x65, 0x24, 0x8c, 0x98, 0x12, 0xcd, 0x3d, 0xb7, 0x9c, 0x8f, 0x86, 0xbb, 0xd5, 0x77, 0x7f,
+ 0xab, 0x1f, 0xd8, 0x55, 0x57, 0x2a, 0xa6, 0x9b, 0x24, 0xa9, 0x87, 0xd5, 0xac, 0x6a, 0xb6, 0xca,
+ 0xa0, 0x58, 0x94, 0xca, 0x00, 0xd8, 0x42, 0x97, 0x00, 0xd8, 0x1b, 0x30, 0x58, 0x27, 0x5e, 0x95,
+ 0x44, 0xd2, 0xb8, 0xb9, 0x62, 0xe7, 0x72, 0xee, 0x65, 0x46, 0x34, 0xb5, 0x10, 0xf0, 0xdf, 0x31,
+ 0x96, 0xdc, 0xd0, 0x7b, 0x61, 0x9c, 0xea, 0x58, 0x61, 0x3b, 0x91, 0xfe, 0x09, 0x6e, 0xdc, 0x64,
+ 0x9b, 0xfd, 0x86, 0x51, 0x82, 0x33, 0x98, 0x68, 0x1e, 0x26, 0x84, 0x2f, 0x41, 0x19, 0x4d, 0xc5,
+ 0xc0, 0xaa, 0x4c, 0x1e, 0xe5, 0x4c, 0x39, 0xee, 0xa8, 0xc1, 0x02, 0x18, 0xc3, 0x2a, 0x77, 0x27,
+ 0xeb, 0x01, 0x8c, 0x61, 0x75, 0x17, 0xb3, 0x12, 0xf4, 0x2a, 0x0c, 0xd1, 0xbf, 0x0b, 0x51, 0xd8,
+ 0x14, 0x66, 0xa3, 0x75, 0x3b, 0xa3, 0x43, 0x79, 0x88, 0x43, 0x2c, 0xd3, 0x3d, 0x67, 0x05, 0x17,
+ 0xac, 0xf8, 0xd1, 0xa3, 0x94, 0xbe, 0x5d, 0x5e, 0x23, 0x91, 0xbf, 0xb5, 0xcb, 0xf4, 0x99, 0xa1,
+ 0xf4, 0x28, 0xb5, 0xd4, 0x81, 0x81, 0x73, 0x6a, 0xb9, 0x9f, 0x2b, 0xc0, 0xa8, 0x7e, 0x63, 0xfa,
+ 0x4e, 0x51, 0xd1, 0x71, 0x3a, 0x29, 0xf8, 0xc1, 0xf9, 0xb2, 0x85, 0x6e, 0xdf, 0x69, 0x42, 0xd4,
+ 0xa1, 0xdf, 0x6b, 0x0b, 0x45, 0xd6, 0x8a, 0x7d, 0x8e, 0xf5, 0xb8, 0x9d, 0xd4, 0xf9, 0xd5, 0x3a,
+ 0x16, 0xaf, 0xcc, 0x38, 0xb8, 0x9f, 0xec, 0x83, 0x21, 0x59, 0x88, 0x3e, 0xe1, 0x00, 0xa4, 0x71,
+ 0x63, 0x42, 0x94, 0xae, 0xdb, 0x08, 0x2a, 0xd2, 0x43, 0xde, 0x34, 0x33, 0xbf, 0x82, 0x63, 0x8d,
+ 0x2f, 0x4a, 0x60, 0x20, 0xa4, 0x8d, 0xbb, 0x68, 0xef, 0xd6, 0xff, 0x1a, 0x65, 0x7c, 0x91, 0x71,
+ 0x4f, 0x2d, 0x7a, 0x0c, 0x86, 0x05, 0x2f, 0x7a, 0x38, 0xdd, 0x94, 0xe1, 0x8c, 0xf6, 0xac, 0xdf,
+ 0x2a, 0x42, 0x32, 0x3d, 0x6b, 0x2a, 0x10, 0x4e, 0x19, 0xba, 0x4f, 0xc1, 0xb8, 0xb9, 0x18, 0xe8,
+ 0x61, 0x65, 0x73, 0x37, 0x21, 0xdc, 0x14, 0x32, 0xca, 0x0f, 0x2b, 0xb3, 0x14, 0x80, 0x39, 0xdc,
+ 0xfd, 0xbe, 0x03, 0x90, 0x8a, 0x97, 0x1e, 0xbc, 0x0f, 0x8f, 0xe8, 0x76, 0xbc, 0x6e, 0x27, 0xc2,
+ 0x37, 0x61, 0x98, 0xfd, 0xc3, 0x16, 0x7a, 0x9f, 0xad, 0xe0, 0x83, 0xb4, 0x9d, 0x62, 0xa9, 0x33,
+ 0x5d, 0xe3, 0x9a, 0x64, 0x84, 0x53, 0x9e, 0x6e, 0x08, 0x13, 0x59, 0x6c, 0xf4, 0x21, 0x18, 0x8d,
+ 0xe5, 0xb6, 0x9a, 0xde, 0xff, 0xeb, 0x71, 0xfb, 0xe5, 0xae, 0x3f, 0xad, 0x3a, 0x36, 0x88, 0xb9,
+ 0x6b, 0x30, 0x60, 0x75, 0x08, 0xdd, 0x6f, 0x39, 0x30, 0xcc, 0xbc, 0xaf, 0xb5, 0xc8, 0x6b, 0xa6,
+ 0x55, 0xfa, 0xf6, 0x19, 0xf5, 0x18, 0x06, 0xb9, 0xf9, 0x40, 0x46, 0x2d, 0x59, 0x90, 0x32, 0x3c,
+ 0x59, 0x5f, 0x2a, 0x65, 0xb8, 0x9d, 0x22, 0xc6, 0x92, 0x93, 0xfb, 0xa9, 0x02, 0x0c, 0x2c, 0x05,
+ 0xad, 0xf6, 0x9f, 0xfb, 0x84, 0x71, 0xab, 0xd0, 0xbf, 0x94, 0x90, 0xa6, 0x99, 0xd7, 0x70, 0x74,
+ 0xf6, 0x51, 0x3d, 0xa7, 0x61, 0xc9, 0xcc, 0x69, 0x88, 0xbd, 0x1b, 0x32, 0xa8, 0x4f, 0x98, 0xaf,
+ 0xd3, 0x3b, 0x90, 0x4f, 0xc2, 0xf0, 0x8a, 0xb7, 0x49, 0x1a, 0xcb, 0x64, 0x97, 0xdd, 0x58, 0xe4,
+ 0x01, 0x26, 0x4e, 0x6a, 0x73, 0x30, 0x82, 0x41, 0xe6, 0x61, 0x9c, 0x61, 0xab, 0xc5, 0x40, 0x4f,
+ 0x24, 0x24, 0x4d, 0x0a, 0xe5, 0x98, 0x27, 0x12, 0x2d, 0x21, 0x94, 0x86, 0xe5, 0x4e, 0xc3, 0x48,
+ 0x4a, 0xa5, 0x07, 0xae, 0x3f, 0x29, 0xc0, 0x98, 0x61, 0x85, 0x37, 0x7c, 0x93, 0xce, 0x1d, 0x7d,
+ 0x93, 0x86, 0xaf, 0xb0, 0x70, 0xaf, 0x7d, 0x85, 0x7d, 0xc7, 0xef, 0x2b, 0x34, 0x3f, 0x52, 0x7f,
+ 0x4f, 0x1f, 0xa9, 0x01, 0xfd, 0x2b, 0x7e, 0xb0, 0xdd, 0x9b, 0x9c, 0x89, 0x2b, 0x61, 0xab, 0x43,
+ 0xce, 0x94, 0x29, 0x10, 0xf3, 0x32, 0xa9, 0xb9, 0xf4, 0xe5, 0x6b, 0x2e, 0xee, 0x27, 0x1c, 0x18,
+ 0x5d, 0xf5, 0x02, 0x7f, 0x8b, 0xc4, 0x09, 0x9b, 0x57, 0xc9, 0x91, 0xde, 0x5c, 0x1b, 0xed, 0x92,
+ 0x83, 0xe1, 0x2d, 0x07, 0x4e, 0xae, 0x92, 0x66, 0xe8, 0xbf, 0xea, 0xa5, 0x31, 0xb3, 0xb4, 0xed,
+ 0x75, 0x3f, 0x11, 0x21, 0x82, 0xaa, 0xed, 0x97, 0xfd, 0x04, 0x53, 0xf8, 0x1d, 0x4c, 0xcc, 0xec,
+ 0x4e, 0x08, 0x3d, 0xa0, 0x69, 0xb7, 0x29, 0xd3, 0x68, 0x58, 0x59, 0x80, 0x53, 0x1c, 0xf7, 0xb7,
+ 0x1d, 0x18, 0xe4, 0x8d, 0x50, 0x61, 0xc6, 0x4e, 0x17, 0xda, 0x75, 0x28, 0xb2, 0x7a, 0x62, 0x56,
+ 0x2f, 0x5a, 0x50, 0x7f, 0x28, 0x39, 0xbe, 0x06, 0xd9, 0xbf, 0x98, 0x33, 0x60, 0xc7, 0x16, 0xef,
+ 0xe6, 0x8c, 0x0a, 0x17, 0x4e, 0x8f, 0x2d, 0x0c, 0x8a, 0x45, 0xa9, 0xfb, 0xb5, 0x3e, 0x18, 0x52,
+ 0xa9, 0xc7, 0x58, 0x62, 0x88, 0x20, 0x08, 0x13, 0x8f, 0x87, 0x61, 0x70, 0x59, 0xfd, 0x21, 0x7b,
+ 0xa9, 0xcf, 0xa6, 0x67, 0x52, 0xea, 0xdc, 0xb5, 0xa8, 0x0e, 0xa1, 0x5a, 0x09, 0xd6, 0x1b, 0x81,
+ 0x3e, 0x0a, 0x03, 0x0d, 0x2a, 0x7d, 0xa4, 0xe8, 0xbe, 0x66, 0xb1, 0x39, 0x4c, 0xac, 0x89, 0x96,
+ 0xa8, 0x11, 0xe2, 0x40, 0x2c, 0xb8, 0x4e, 0xbe, 0x1f, 0x26, 0xb2, 0xad, 0xbe, 0xd3, 0x65, 0xcf,
+ 0x61, 0xfd, 0xaa, 0xe8, 0x5f, 0x16, 0xd2, 0xf3, 0xe0, 0x55, 0xdd, 0xe7, 0x60, 0x64, 0x95, 0x24,
+ 0x91, 0x5f, 0x61, 0x04, 0xee, 0x34, 0xb9, 0x7a, 0xd2, 0x1f, 0x3e, 0xcd, 0x26, 0x2b, 0xa5, 0x19,
+ 0xa3, 0xd7, 0x01, 0x5a, 0x51, 0x48, 0xcf, 0xaf, 0xa4, 0x2d, 0x3f, 0xb6, 0x05, 0x7d, 0x78, 0x5d,
+ 0xd1, 0xe4, 0xde, 0xf0, 0xf4, 0x37, 0xd6, 0xf8, 0xb9, 0xff, 0xc6, 0x81, 0xe2, 0x6a, 0x3b, 0x21,
+ 0x37, 0x7b, 0x10, 0x59, 0x07, 0x4e, 0x7f, 0xf0, 0x26, 0x0c, 0x4b, 0xf7, 0x99, 0x3c, 0x70, 0xdb,
+ 0x88, 0xfa, 0xda, 0x0d, 0x2a, 0x4a, 0xf5, 0x4b, 0xa3, 0x83, 0x24, 0x23, 0x9c, 0xf2, 0x74, 0x3f,
+ 0x04, 0xa3, 0xac, 0x73, 0x97, 0xc3, 0x06, 0xdd, 0xd8, 0xe9, 0xc7, 0x69, 0xd2, 0xdf, 0x59, 0x8f,
+ 0x09, 0x43, 0xc2, 0xbc, 0x8c, 0x2e, 0xda, 0x7a, 0xd8, 0xa8, 0xaa, 0xbb, 0x68, 0x6a, 0x4a, 0x5e,
+ 0x66, 0x50, 0x2c, 0x4a, 0xdd, 0x8f, 0x17, 0x60, 0x84, 0x55, 0x14, 0x02, 0x6f, 0x17, 0x06, 0xeb,
+ 0x9c, 0x8f, 0xf8, 0x8a, 0x16, 0xfa, 0xaa, 0xb7, 0x5e, 0x3b, 0x4d, 0x72, 0x00, 0x96, 0xfc, 0x28,
+ 0xeb, 0x1b, 0x9e, 0x9f, 0x50, 0xd6, 0x85, 0xa3, 0x65, 0x7d, 0x9d, 0xb3, 0xc1, 0x92, 0x9f, 0xfb,
+ 0x0b, 0xc0, 0xee, 0x78, 0x2f, 0x34, 0xbc, 0x1a, 0x1f, 0xb9, 0x70, 0x9b, 0x54, 0x85, 0xd4, 0xd7,
+ 0x46, 0x8e, 0x42, 0xb1, 0x28, 0xe5, 0xf7, 0x66, 0x93, 0xc8, 0x57, 0xb1, 0xe1, 0xda, 0xbd, 0x59,
+ 0x06, 0x96, 0x37, 0x01, 0xaa, 0xee, 0x97, 0x0a, 0x00, 0x2c, 0x55, 0x1e, 0xbf, 0x9a, 0xfd, 0x73,
+ 0x32, 0x8c, 0xcb, 0xf4, 0xb2, 0xaa, 0x30, 0x2e, 0x76, 0xf9, 0x5c, 0x0f, 0xdf, 0xd2, 0xaf, 0x6c,
+ 0x14, 0xf6, 0xbf, 0xb2, 0x81, 0x5a, 0x30, 0x18, 0xb6, 0x13, 0xaa, 0x2d, 0x0b, 0x75, 0xc3, 0x42,
+ 0x90, 0xc1, 0x1a, 0x27, 0xc8, 0xef, 0x39, 0x88, 0x1f, 0x58, 0xb2, 0x41, 0xcf, 0xc0, 0x50, 0x2b,
+ 0x0a, 0x6b, 0x54, 0x7b, 0x10, 0x0a, 0xc6, 0x83, 0x52, 0x23, 0x5b, 0x17, 0xf0, 0xdb, 0xda, 0xff,
+ 0x58, 0x61, 0xbb, 0x7f, 0x38, 0xc1, 0xc7, 0x45, 0xcc, 0xbd, 0x49, 0x28, 0xf8, 0xd2, 0x36, 0x06,
+ 0x82, 0x44, 0x61, 0x69, 0x1e, 0x17, 0xfc, 0xaa, 0x5a, 0xd8, 0x85, 0xae, 0x0b, 0xfb, 0x3d, 0x30,
+ 0x52, 0xf5, 0xe3, 0x56, 0xc3, 0xdb, 0xbd, 0x92, 0x63, 0x98, 0x9c, 0x4f, 0x8b, 0xb0, 0x8e, 0x87,
+ 0x9e, 0x14, 0x17, 0x74, 0xfa, 0x0d, 0x63, 0x94, 0xbc, 0xa0, 0x93, 0x5e, 0xfd, 0xe7, 0x77, 0x73,
+ 0xb2, 0x29, 0x12, 0x8a, 0x3d, 0xa7, 0x48, 0xc8, 0xea, 0x82, 0x03, 0xc7, 0xaf, 0x0b, 0xbe, 0x0f,
+ 0xc6, 0xe4, 0x4f, 0xa6, 0xa0, 0x95, 0x4e, 0xb3, 0xd6, 0x2b, 0x43, 0xfc, 0x86, 0x5e, 0x88, 0x4d,
+ 0xdc, 0x74, 0xd2, 0x0e, 0xf6, 0x3a, 0x69, 0x2f, 0x02, 0x6c, 0x86, 0xed, 0xa0, 0xea, 0x45, 0xbb,
+ 0x4b, 0xf3, 0x22, 0x9c, 0x57, 0xa9, 0x9e, 0xb3, 0xaa, 0x04, 0x6b, 0x58, 0xfa, 0x44, 0x1f, 0xbe,
+ 0xc3, 0x44, 0xff, 0x10, 0x0c, 0xb3, 0xd0, 0x67, 0x52, 0x9d, 0x49, 0x44, 0xfc, 0xd5, 0x41, 0xe2,
+ 0x49, 0x53, 0x99, 0x2b, 0x89, 0xe0, 0x94, 0x1e, 0x7a, 0x09, 0x60, 0xcb, 0x0f, 0xfc, 0xb8, 0xce,
+ 0xa8, 0x8f, 0x1c, 0x98, 0xba, 0xea, 0xe7, 0x82, 0xa2, 0x82, 0x35, 0x8a, 0xe8, 0x45, 0x38, 0x49,
+ 0xe2, 0xc4, 0x6f, 0x7a, 0x09, 0xa9, 0xaa, 0x2b, 0xad, 0x25, 0x66, 0x4d, 0x55, 0xc1, 0xe7, 0x97,
+ 0xb2, 0x08, 0xb7, 0xf3, 0x80, 0xb8, 0x93, 0x90, 0xb1, 0x22, 0x27, 0x0f, 0xb2, 0x22, 0xd1, 0xff,
+ 0x74, 0xe0, 0x64, 0x44, 0x78, 0x50, 0x4e, 0xac, 0x1a, 0x76, 0x86, 0x89, 0xe3, 0x8a, 0x8d, 0x2c,
+ 0xf4, 0x2a, 0xdd, 0x0c, 0xce, 0x72, 0xe1, 0xaa, 0x13, 0x91, 0xbd, 0xef, 0x28, 0xbf, 0x9d, 0x07,
+ 0x7c, 0xeb, 0xed, 0xa9, 0xa9, 0xce, 0xd7, 0x10, 0x14, 0x71, 0xba, 0xf2, 0xfe, 0xfa, 0xdb, 0x53,
+ 0x13, 0xf2, 0x77, 0x3a, 0x68, 0x1d, 0x9d, 0xa4, 0xdb, 0x6a, 0x2b, 0xac, 0x2e, 0xad, 0x8b, 0x40,
+ 0x39, 0xb5, 0xad, 0xae, 0x53, 0x20, 0xe6, 0x65, 0xe8, 0x71, 0x18, 0xaa, 0x7a, 0xa4, 0x19, 0x06,
+ 0x2a, 0x9f, 0x30, 0x3b, 0x4f, 0xcc, 0x0b, 0x18, 0x56, 0xa5, 0xf4, 0x14, 0x13, 0x88, 0x2d, 0xa5,
+ 0xf4, 0x80, 0xad, 0x53, 0x8c, 0xdc, 0xa4, 0x38, 0x57, 0xf9, 0x0b, 0x2b, 0x4e, 0xa8, 0x01, 0x03,
+ 0x3e, 0x33, 0x95, 0x88, 0x58, 0x5c, 0x0b, 0xf6, 0x19, 0x6e, 0x7a, 0x91, 0x91, 0xb8, 0x4c, 0xf4,
+ 0x0b, 0x1e, 0xfa, 0x5e, 0x73, 0xe2, 0x78, 0xf6, 0x9a, 0xc7, 0x61, 0xa8, 0x52, 0xf7, 0x1b, 0xd5,
+ 0x88, 0x04, 0xa5, 0x09, 0x66, 0x33, 0x60, 0x23, 0x31, 0x27, 0x60, 0x58, 0x95, 0xa2, 0xbf, 0x04,
+ 0x63, 0x61, 0x3b, 0x61, 0xa2, 0x85, 0x8e, 0x53, 0x5c, 0x3a, 0xc9, 0xd0, 0x59, 0x64, 0xd5, 0x9a,
+ 0x5e, 0x80, 0x4d, 0x3c, 0x2a, 0xe2, 0xeb, 0x61, 0xcc, 0x32, 0x23, 0x31, 0x11, 0x7f, 0xd6, 0x14,
+ 0xf1, 0x97, 0xb5, 0x32, 0x6c, 0x60, 0xa2, 0xaf, 0x38, 0x70, 0xb2, 0x99, 0x3d, 0x42, 0x96, 0xce,
+ 0xb1, 0x91, 0x29, 0xdb, 0x38, 0x6a, 0x64, 0x48, 0xf3, 0x98, 0xf8, 0x0e, 0x30, 0xee, 0x6c, 0x04,
+ 0xcb, 0x51, 0x16, 0xef, 0x06, 0x95, 0x7a, 0x14, 0x06, 0x66, 0xf3, 0xee, 0xb7, 0x75, 0x33, 0x8f,
+ 0xad, 0xed, 0x3c, 0x16, 0xb3, 0xf7, 0xdf, 0xda, 0x9b, 0x3a, 0x93, 0x5b, 0x84, 0xf3, 0x1b, 0x35,
+ 0x39, 0x0f, 0x67, 0xf3, 0xe5, 0xc3, 0x9d, 0xce, 0x3c, 0x7d, 0xfa, 0x99, 0x67, 0x01, 0xee, 0xef,
+ 0xda, 0x28, 0xba, 0xd3, 0x48, 0x6d, 0xd3, 0x31, 0x77, 0x9a, 0x0e, 0xed, 0x70, 0x1c, 0x46, 0xf5,
+ 0xe7, 0x33, 0xdc, 0xff, 0xd3, 0x07, 0x90, 0x5a, 0xea, 0x91, 0x07, 0xe3, 0xdc, 0x2b, 0xb0, 0x34,
+ 0x7f, 0xe8, 0x9c, 0x02, 0x73, 0x06, 0x01, 0x9c, 0x21, 0x88, 0x9a, 0x80, 0x38, 0x84, 0xff, 0x3e,
+ 0x8c, 0x77, 0x97, 0x39, 0x43, 0xe7, 0x3a, 0x88, 0xe0, 0x1c, 0xc2, 0xb4, 0x47, 0x49, 0xb8, 0x4d,
+ 0x82, 0xab, 0x78, 0xe5, 0x30, 0x89, 0x29, 0xb8, 0x3f, 0xd0, 0x20, 0x80, 0x33, 0x04, 0x91, 0x0b,
+ 0x03, 0xcc, 0x3a, 0x24, 0xa3, 0xd7, 0x99, 0x78, 0x61, 0x9a, 0x46, 0x8c, 0x45, 0x09, 0xfa, 0x92,
+ 0x03, 0xe3, 0x32, 0xbf, 0x06, 0xb3, 0xc7, 0xca, 0xb8, 0xf5, 0xab, 0xb6, 0x3c, 0x2d, 0x97, 0x74,
+ 0xea, 0x69, 0x54, 0xa8, 0x01, 0x8e, 0x71, 0xa6, 0x11, 0xee, 0xf3, 0x70, 0x2a, 0xa7, 0xba, 0x95,
+ 0x33, 0xf5, 0x77, 0x1c, 0x18, 0xd1, 0xd2, 0x3e, 0xa2, 0xd7, 0x61, 0x38, 0x2c, 0x5b, 0x0f, 0x45,
+ 0x5c, 0x2b, 0x77, 0x84, 0x22, 0x2a, 0x10, 0x4e, 0x19, 0xf6, 0x12, 0x41, 0x99, 0x9b, 0xa3, 0xf2,
+ 0x1e, 0x37, 0xfb, 0xc0, 0x11, 0x94, 0xbf, 0x54, 0x84, 0x94, 0xd2, 0x01, 0xf3, 0xbe, 0xa4, 0xf1,
+ 0x96, 0x85, 0x7d, 0xe3, 0x2d, 0xab, 0x70, 0xc2, 0x63, 0xde, 0xec, 0x43, 0x66, 0x7b, 0xe1, 0x59,
+ 0x7f, 0x4d, 0x0a, 0x38, 0x4b, 0x92, 0x72, 0x89, 0xd3, 0xaa, 0x8c, 0x4b, 0xff, 0x81, 0xb9, 0x94,
+ 0x4d, 0x0a, 0x38, 0x4b, 0x12, 0xbd, 0x08, 0xa5, 0x0a, 0xbb, 0xbd, 0xcc, 0xfb, 0xb8, 0xb4, 0x75,
+ 0x25, 0x4c, 0xd6, 0x23, 0x12, 0x93, 0x20, 0x11, 0x79, 0xdd, 0x1e, 0x16, 0xa3, 0x50, 0x9a, 0xeb,
+ 0x82, 0x87, 0xbb, 0x52, 0xa0, 0xc7, 0x14, 0xe6, 0x0e, 0xf7, 0x93, 0x5d, 0x26, 0x44, 0x44, 0x9c,
+ 0x80, 0x3a, 0xa6, 0x94, 0xf5, 0x42, 0x6c, 0xe2, 0xa2, 0x5f, 0x74, 0x60, 0xac, 0x21, 0x1d, 0x06,
+ 0xb8, 0xdd, 0x90, 0x49, 0x4a, 0xb1, 0x95, 0xe9, 0xb7, 0xa2, 0x53, 0xe6, 0xba, 0x84, 0x01, 0xc2,
+ 0x26, 0xef, 0x6c, 0xea, 0x9d, 0xa1, 0x1e, 0x53, 0xef, 0x7c, 0xdf, 0x81, 0x89, 0x2c, 0x37, 0xb4,
+ 0x0d, 0x0f, 0x35, 0xbd, 0x68, 0x7b, 0x29, 0xd8, 0x8a, 0xd8, 0x2d, 0x95, 0x84, 0x4f, 0x86, 0x99,
+ 0xad, 0x84, 0x44, 0xf3, 0xde, 0x2e, 0x77, 0xc0, 0x16, 0xd5, 0x2b, 0x57, 0x0f, 0xad, 0xee, 0x87,
+ 0x8c, 0xf7, 0xa7, 0x85, 0xca, 0x70, 0x86, 0x22, 0xb0, 0xcc, 0x7c, 0x7e, 0x18, 0xa4, 0x4c, 0x0a,
+ 0x8c, 0x89, 0x8a, 0x94, 0x5c, 0xcd, 0x43, 0xc2, 0xf9, 0x75, 0xdd, 0x4b, 0x30, 0xc0, 0x2f, 0x0d,
+ 0xde, 0x95, 0x07, 0xcb, 0xfd, 0xd7, 0x05, 0x90, 0x8a, 0xe1, 0x9f, 0x6f, 0x87, 0x20, 0xdd, 0x44,
+ 0x23, 0x66, 0x52, 0x12, 0xd6, 0x0e, 0xb6, 0x89, 0x8a, 0x1c, 0x98, 0xa2, 0x84, 0x6a, 0xcc, 0xe4,
+ 0xa6, 0x9f, 0xcc, 0x85, 0x55, 0x69, 0xe3, 0x60, 0x1a, 0xf3, 0x25, 0x01, 0xc3, 0xaa, 0xd4, 0xfd,
+ 0x84, 0x03, 0x63, 0xb4, 0x97, 0x8d, 0x06, 0x69, 0x94, 0x13, 0xd2, 0x8a, 0x51, 0x0c, 0xc5, 0x98,
+ 0xfe, 0x63, 0xcf, 0x14, 0x98, 0x5e, 0x34, 0x25, 0x2d, 0xcd, 0x5d, 0x44, 0x99, 0x60, 0xce, 0xcb,
+ 0xfd, 0x76, 0x1f, 0x0c, 0xab, 0xc1, 0xee, 0xc1, 0xa0, 0x7b, 0x31, 0x4d, 0x4f, 0xcb, 0x25, 0x70,
+ 0x49, 0x4b, 0x4d, 0x7b, 0x9b, 0x0e, 0x5d, 0xb0, 0xcb, 0xf3, 0x74, 0xa4, 0x79, 0x6a, 0x9f, 0x34,
+ 0x9d, 0xdd, 0x67, 0xf5, 0xf9, 0xa7, 0xe1, 0x0b, 0xaf, 0xf7, 0x4d, 0x3d, 0xd6, 0xa0, 0xdf, 0xd6,
+ 0x6e, 0xa6, 0x1c, 0xa9, 0xdd, 0x83, 0x0c, 0x32, 0x2f, 0x17, 0x15, 0x7b, 0x7a, 0xb9, 0xe8, 0x09,
+ 0xe8, 0x27, 0x41, 0xbb, 0xc9, 0x54, 0xa5, 0x61, 0x76, 0x44, 0xe8, 0xbf, 0x14, 0xb4, 0x9b, 0x66,
+ 0xcf, 0x18, 0x0a, 0x7a, 0x3f, 0x8c, 0x54, 0x49, 0x5c, 0x89, 0x7c, 0x96, 0x7c, 0x42, 0x58, 0x76,
+ 0x1e, 0x64, 0xe6, 0xb2, 0x14, 0x6c, 0x56, 0xd4, 0x2b, 0xb8, 0xaf, 0xc2, 0xc0, 0x7a, 0xa3, 0x5d,
+ 0xf3, 0x03, 0xd4, 0x82, 0x01, 0x9e, 0x8a, 0x42, 0xec, 0xf6, 0x16, 0xce, 0x9d, 0x5c, 0x54, 0x68,
+ 0x71, 0x30, 0xfc, 0xbe, 0xb1, 0xe0, 0xe3, 0x7e, 0xbc, 0x00, 0xf4, 0x68, 0xbe, 0x38, 0x87, 0xfe,
+ 0x6a, 0xc7, 0x43, 0x3d, 0x3f, 0x93, 0xf3, 0x50, 0xcf, 0x18, 0x43, 0xce, 0x79, 0xa3, 0xa7, 0x01,
+ 0x63, 0xcc, 0x3d, 0x23, 0xf7, 0x40, 0xa1, 0x56, 0x3f, 0xdd, 0x63, 0xf6, 0x06, 0xbd, 0xaa, 0xd8,
+ 0x11, 0x74, 0x10, 0x36, 0x89, 0xa3, 0x55, 0x38, 0xc5, 0xb3, 0x9c, 0xce, 0x93, 0x86, 0xb7, 0x9b,
+ 0xc9, 0x66, 0xf6, 0x80, 0x7c, 0x7b, 0x6d, 0xbe, 0x13, 0x05, 0xe7, 0xd5, 0x73, 0x7f, 0xa7, 0x1f,
+ 0x34, 0xa7, 0x48, 0x0f, 0xab, 0xe5, 0x95, 0x8c, 0x0b, 0x6c, 0xd5, 0x8a, 0x0b, 0x4c, 0xfa, 0x95,
+ 0xb8, 0x04, 0x32, 0xbd, 0x5e, 0xb4, 0x51, 0x75, 0xd2, 0x68, 0x89, 0x3e, 0xaa, 0x46, 0x5d, 0x26,
+ 0x8d, 0x16, 0x66, 0x25, 0xea, 0xb6, 0x65, 0x7f, 0xd7, 0xdb, 0x96, 0x75, 0x28, 0xd6, 0xbc, 0x76,
+ 0x8d, 0x88, 0x18, 0x50, 0x0b, 0xde, 0x4e, 0x76, 0xff, 0x83, 0x7b, 0x3b, 0xd9, 0xbf, 0x98, 0x33,
+ 0xa0, 0x8b, 0xbd, 0x2e, 0x83, 0x62, 0x84, 0x91, 0xd6, 0xc2, 0x62, 0x57, 0x71, 0x36, 0x7c, 0xb1,
+ 0xab, 0x9f, 0x38, 0x65, 0x86, 0x5a, 0x30, 0x58, 0xe1, 0x39, 0x64, 0x84, 0xce, 0xb2, 0x64, 0xe3,
+ 0x3a, 0x29, 0x23, 0xc8, 0xad, 0x29, 0xe2, 0x07, 0x96, 0x6c, 0xdc, 0x0b, 0x30, 0xa2, 0xbd, 0x17,
+ 0x42, 0x3f, 0x83, 0x4a, 0x5f, 0xa2, 0x7d, 0x86, 0x79, 0x2f, 0xf1, 0x30, 0x2b, 0x71, 0xbf, 0xd1,
+ 0x0f, 0xca, 0x96, 0xa6, 0x5f, 0x7e, 0xf4, 0x2a, 0x5a, 0xb2, 0x25, 0x23, 0x11, 0x40, 0x18, 0x60,
+ 0x51, 0x4a, 0xf5, 0xba, 0x26, 0x89, 0x6a, 0xea, 0x1c, 0x2d, 0xc4, 0xb5, 0xd2, 0xeb, 0x56, 0xf5,
+ 0x42, 0x6c, 0xe2, 0x52, 0xa5, 0xbc, 0x29, 0x82, 0x04, 0xb2, 0xa1, 0xdd, 0x32, 0x78, 0x00, 0x2b,
+ 0x0c, 0x96, 0xad, 0xa1, 0xa9, 0xc5, 0x14, 0x88, 0x50, 0x50, 0x1b, 0x0e, 0x25, 0x8d, 0x2a, 0x0f,
+ 0xd9, 0xd2, 0x21, 0xd8, 0xe0, 0x8a, 0x16, 0xe1, 0x64, 0x4c, 0x92, 0xb5, 0x1b, 0x01, 0x89, 0x54,
+ 0x9e, 0x04, 0x91, 0x0e, 0x44, 0x5d, 0x0d, 0x29, 0x67, 0x11, 0x70, 0x67, 0x9d, 0xdc, 0xe8, 0xd9,
+ 0xe2, 0x81, 0xa3, 0x67, 0xe7, 0x61, 0x62, 0xcb, 0xf3, 0x1b, 0xed, 0x88, 0x74, 0x8d, 0xc1, 0x5d,
+ 0xc8, 0x94, 0xe3, 0x8e, 0x1a, 0xec, 0x76, 0x52, 0xc3, 0xab, 0xc5, 0xa5, 0x41, 0xed, 0x76, 0x12,
+ 0x05, 0x60, 0x0e, 0x77, 0x7f, 0xdd, 0x01, 0x9e, 0x87, 0x69, 0x66, 0x6b, 0xcb, 0x0f, 0xfc, 0x64,
+ 0x17, 0x7d, 0xd5, 0x81, 0x89, 0x20, 0xac, 0x92, 0x99, 0x20, 0xf1, 0x25, 0xd0, 0x5e, 0x72, 0x7c,
+ 0xc6, 0xeb, 0x4a, 0x86, 0x3c, 0x4f, 0xea, 0x91, 0x85, 0xe2, 0x8e, 0x66, 0xb8, 0xe7, 0xe0, 0x4c,
+ 0x2e, 0x01, 0xf7, 0xfb, 0x7d, 0x60, 0xa6, 0x93, 0x42, 0xcf, 0x41, 0xb1, 0xc1, 0x12, 0x9c, 0x38,
+ 0x87, 0xcc, 0x13, 0xc6, 0xc6, 0x8a, 0x67, 0x40, 0xe1, 0x94, 0xd0, 0x3c, 0x8c, 0xb0, 0x1c, 0x55,
+ 0x22, 0xfd, 0x4c, 0xc1, 0xc8, 0xeb, 0x30, 0x82, 0xd3, 0xa2, 0xdb, 0xe6, 0x4f, 0xac, 0x57, 0x43,
+ 0xaf, 0xc1, 0xe0, 0x26, 0xcf, 0xd4, 0x69, 0xcf, 0xe7, 0x27, 0x52, 0x7f, 0x32, 0xdd, 0x48, 0xe6,
+ 0x01, 0xbd, 0x9d, 0xfe, 0x8b, 0x25, 0x47, 0xb4, 0x0b, 0x43, 0x9e, 0xfc, 0xa6, 0xfd, 0xb6, 0xae,
+ 0x8a, 0x18, 0xf3, 0x47, 0xc4, 0xec, 0xc8, 0x6f, 0xa8, 0xd8, 0x65, 0x82, 0x9b, 0x8a, 0x3d, 0x05,
+ 0x37, 0x7d, 0xcb, 0x01, 0x48, 0x9f, 0x35, 0x41, 0x37, 0x61, 0x28, 0x7e, 0xda, 0x30, 0x54, 0xd8,
+ 0x48, 0x33, 0x20, 0x28, 0x6a, 0x57, 0x71, 0x05, 0x04, 0x2b, 0x6e, 0x77, 0x32, 0xae, 0xfc, 0xc4,
+ 0x81, 0xd3, 0x79, 0xcf, 0xaf, 0xdc, 0xc3, 0x16, 0x1f, 0xd4, 0xae, 0x22, 0x2a, 0xac, 0x47, 0x64,
+ 0xcb, 0xbf, 0x99, 0x93, 0x2f, 0x9a, 0x17, 0xe0, 0x14, 0xc7, 0xfd, 0xe3, 0x41, 0x50, 0x8c, 0x8f,
+ 0xc8, 0x0e, 0xf3, 0x18, 0x3d, 0x33, 0xd5, 0x52, 0x9d, 0x4b, 0xe1, 0x61, 0x06, 0xc5, 0xa2, 0x94,
+ 0x9e, 0x9b, 0x64, 0x58, 0xbe, 0x10, 0xd9, 0x6c, 0x16, 0xca, 0xf0, 0x7d, 0xac, 0x4a, 0xf3, 0x2c,
+ 0x3b, 0xc5, 0x63, 0xb1, 0xec, 0x0c, 0xd8, 0xb7, 0xec, 0x34, 0x01, 0xc5, 0x7c, 0xa1, 0x30, 0x73,
+ 0x8a, 0x60, 0x34, 0x7a, 0x60, 0x43, 0x73, 0xb9, 0x83, 0x08, 0xce, 0x21, 0xcc, 0x62, 0x28, 0xc2,
+ 0x06, 0x99, 0xc1, 0x57, 0xc4, 0xe1, 0x23, 0x8d, 0xa1, 0xe0, 0x60, 0x2c, 0xcb, 0x0f, 0x69, 0x4a,
+ 0x41, 0xbf, 0xe9, 0xec, 0x63, 0xab, 0x1a, 0xb6, 0xb5, 0x05, 0xe5, 0xe6, 0xf2, 0x63, 0x27, 0xa9,
+ 0xc3, 0x18, 0xc0, 0xbe, 0xe6, 0xc0, 0x49, 0x12, 0x54, 0xa2, 0x5d, 0x46, 0x47, 0x50, 0x13, 0x2e,
+ 0xee, 0xab, 0x36, 0xd6, 0xfa, 0xa5, 0x2c, 0x71, 0xee, 0x49, 0xea, 0x00, 0xe3, 0xce, 0x66, 0xa0,
+ 0x35, 0x18, 0xaa, 0x78, 0x62, 0x5e, 0x8c, 0x1c, 0x64, 0x5e, 0x70, 0x47, 0xdd, 0x8c, 0x98, 0x0d,
+ 0x8a, 0x88, 0xfb, 0xa3, 0x02, 0x9c, 0xca, 0x69, 0x12, 0xbb, 0x31, 0xd6, 0xa4, 0x0b, 0x60, 0xa9,
+ 0x9a, 0x5d, 0xfe, 0xcb, 0x02, 0x8e, 0x15, 0x06, 0x5a, 0x87, 0xd3, 0xdb, 0xcd, 0x38, 0xa5, 0x32,
+ 0x17, 0x06, 0x09, 0xb9, 0x29, 0x85, 0x81, 0x74, 0x7f, 0x9f, 0x5e, 0xce, 0xc1, 0xc1, 0xb9, 0x35,
+ 0xa9, 0xb6, 0x44, 0x02, 0x6f, 0xb3, 0x41, 0xd2, 0x22, 0x71, 0x8f, 0x52, 0x69, 0x4b, 0x97, 0x32,
+ 0xe5, 0xb8, 0xa3, 0x06, 0xfa, 0x8c, 0x03, 0x0f, 0xc4, 0x24, 0xda, 0x21, 0x51, 0xd9, 0xaf, 0x92,
+ 0xb9, 0x76, 0x9c, 0x84, 0x4d, 0x12, 0x1d, 0xd2, 0x3a, 0x3b, 0x75, 0x6b, 0x6f, 0xea, 0x81, 0x72,
+ 0x77, 0x6a, 0x78, 0x3f, 0x56, 0xee, 0x67, 0x1c, 0x18, 0x2f, 0xb3, 0xb3, 0xbb, 0x52, 0xdd, 0x6d,
+ 0x67, 0x73, 0x7d, 0x4c, 0x25, 0x0f, 0xc9, 0x08, 0x61, 0x33, 0xdd, 0x87, 0xfb, 0x32, 0x4c, 0x94,
+ 0x49, 0xd3, 0x6b, 0xd5, 0xd9, 0x3d, 0x6a, 0x1e, 0xfe, 0x75, 0x01, 0x86, 0x63, 0x09, 0xcb, 0x3e,
+ 0xe0, 0xa4, 0x90, 0x71, 0x8a, 0x83, 0x1e, 0xe5, 0xa1, 0x6a, 0xf2, 0xca, 0xd3, 0x30, 0x3f, 0xe4,
+ 0xf0, 0xf8, 0xb6, 0x18, 0xcb, 0x32, 0xf7, 0x1f, 0x14, 0x60, 0x34, 0xad, 0x4f, 0xb6, 0x50, 0x0d,
+ 0x4e, 0x54, 0xb4, 0xeb, 0x82, 0xe9, 0x45, 0x8d, 0xde, 0x6f, 0x16, 0xf2, 0x24, 0xd3, 0x26, 0x11,
+ 0x9c, 0xa5, 0xfa, 0xff, 0x61, 0xa8, 0xe1, 0xe7, 0x0b, 0x70, 0x42, 0x8d, 0x95, 0x70, 0x94, 0xbe,
+ 0x91, 0x8d, 0x08, 0xc4, 0x36, 0xf2, 0x30, 0x99, 0x1f, 0x7f, 0x9f, 0xa8, 0xc0, 0x37, 0xb2, 0x51,
+ 0x81, 0x47, 0xca, 0xbe, 0xc3, 0xf7, 0xfb, 0xad, 0x02, 0x0c, 0xa9, 0xac, 0x50, 0xcf, 0x41, 0x91,
+ 0x1d, 0x9d, 0xef, 0xee, 0x00, 0xc0, 0x8e, 0xe1, 0x98, 0x53, 0xa2, 0x24, 0x59, 0xd4, 0xd1, 0xa1,
+ 0x73, 0x0f, 0x0f, 0x73, 0x03, 0xaa, 0x17, 0x25, 0x98, 0x53, 0x42, 0xcb, 0xd0, 0x47, 0x82, 0xaa,
+ 0x38, 0x09, 0x1c, 0x9c, 0x20, 0x7b, 0xeb, 0xed, 0x52, 0x50, 0xc5, 0x94, 0x0a, 0x4b, 0x4d, 0xc7,
+ 0x15, 0xbe, 0xcc, 0xcb, 0x3e, 0x42, 0xdb, 0x13, 0xa5, 0xee, 0x2c, 0x18, 0x69, 0x0b, 0x0f, 0x75,
+ 0x39, 0xe4, 0x17, 0xfb, 0x60, 0xa0, 0xdc, 0xde, 0xa4, 0xe7, 0xa2, 0x6f, 0x3a, 0x70, 0xea, 0x46,
+ 0x26, 0xb9, 0x77, 0xba, 0x50, 0xaf, 0xda, 0x33, 0x44, 0xeb, 0xd1, 0x73, 0xca, 0xfc, 0x96, 0x53,
+ 0x88, 0xf3, 0x9a, 0x63, 0xe4, 0xd7, 0xed, 0x3b, 0x92, 0xfc, 0xba, 0x37, 0x8f, 0xf8, 0x02, 0xcb,
+ 0x58, 0xb7, 0xcb, 0x2b, 0xee, 0xef, 0x14, 0x01, 0xf8, 0xd7, 0x58, 0x6b, 0x25, 0xbd, 0x98, 0x16,
+ 0x9f, 0x81, 0xd1, 0x1a, 0x09, 0x48, 0x24, 0x63, 0x23, 0x33, 0x0f, 0x4f, 0x2d, 0x6a, 0x65, 0xd8,
+ 0xc0, 0x64, 0x93, 0x25, 0x48, 0xa2, 0x5d, 0xae, 0xeb, 0x67, 0x2f, 0xa9, 0xa8, 0x12, 0xac, 0x61,
+ 0xa1, 0x69, 0xc3, 0xf3, 0xc3, 0x83, 0x08, 0xc6, 0xf7, 0x71, 0xd4, 0xbc, 0x1f, 0xc6, 0xcd, 0x64,
+ 0x34, 0x42, 0xe3, 0x54, 0x4e, 0x7f, 0x33, 0x87, 0x0d, 0xce, 0x60, 0xd3, 0x85, 0x50, 0x8d, 0x76,
+ 0x71, 0x3b, 0x10, 0xaa, 0xa7, 0x5a, 0x08, 0xf3, 0x0c, 0x8a, 0x45, 0x29, 0xcb, 0xe2, 0xc1, 0x36,
+ 0x61, 0x0e, 0x17, 0x99, 0x40, 0xd2, 0x2c, 0x1e, 0x5a, 0x19, 0x36, 0x30, 0x29, 0x07, 0x61, 0x9a,
+ 0x05, 0x73, 0xa9, 0x65, 0xec, 0xa9, 0x2d, 0x18, 0x0f, 0x4d, 0x93, 0x12, 0xd7, 0xc3, 0xde, 0xdd,
+ 0xe3, 0xd4, 0x33, 0xea, 0xf2, 0x60, 0x8d, 0x8c, 0x05, 0x2a, 0x43, 0x9f, 0xea, 0xde, 0xfa, 0x5d,
+ 0x8e, 0x51, 0x33, 0xb4, 0xb6, 0xeb, 0x75, 0x8b, 0x75, 0x38, 0xdd, 0x0a, 0xab, 0xeb, 0x91, 0x1f,
+ 0x46, 0x7e, 0xb2, 0x3b, 0xd7, 0xf0, 0xe2, 0x98, 0x4d, 0x8c, 0x31, 0x53, 0x27, 0x5b, 0xcf, 0xc1,
+ 0xc1, 0xb9, 0x35, 0xe9, 0xa1, 0xac, 0x25, 0x80, 0x2c, 0xc0, 0xad, 0xc8, 0xb5, 0x4a, 0x89, 0x88,
+ 0x55, 0xa9, 0x7b, 0x0a, 0x4e, 0x96, 0xdb, 0xad, 0x56, 0xc3, 0x27, 0x55, 0xe5, 0x59, 0x71, 0x3f,
+ 0x00, 0x27, 0x44, 0xf6, 0x5d, 0xa5, 0x01, 0x1d, 0x28, 0x57, 0xbc, 0xfb, 0x12, 0x8c, 0xea, 0xbb,
+ 0xa9, 0xed, 0x54, 0x9a, 0xee, 0x7f, 0xec, 0x83, 0x13, 0x99, 0x70, 0x25, 0xf4, 0x5a, 0x56, 0x2f,
+ 0xb2, 0xa3, 0x14, 0x68, 0x1a, 0x91, 0x48, 0x21, 0x9b, 0xa7, 0x63, 0xd5, 0xe5, 0x5d, 0x03, 0x6b,
+ 0xb7, 0x8c, 0x58, 0x44, 0x3e, 0xdf, 0xb5, 0x8c, 0x0b, 0x0b, 0x1f, 0x05, 0x50, 0x6c, 0x6d, 0x2a,
+ 0x3f, 0x7a, 0x3f, 0x99, 0x7c, 0x50, 0x90, 0x18, 0x6b, 0x1c, 0x51, 0x00, 0x83, 0xac, 0x21, 0x44,
+ 0x5e, 0x6d, 0xb5, 0xd6, 0x57, 0xa6, 0x96, 0xae, 0x72, 0xda, 0x58, 0x32, 0x71, 0x3f, 0x5d, 0x80,
+ 0xfc, 0x98, 0x38, 0xf4, 0xd1, 0xce, 0x0f, 0xfe, 0x9c, 0xc5, 0x81, 0x10, 0x41, 0x79, 0xdd, 0xbf,
+ 0x79, 0x60, 0x7e, 0xf3, 0x55, 0x4b, 0xe3, 0x20, 0xf8, 0x76, 0x7c, 0x79, 0xf7, 0x7f, 0x38, 0x30,
+ 0xb2, 0xb1, 0xb1, 0xa2, 0x54, 0x07, 0x0c, 0x67, 0x63, 0x9e, 0x35, 0x82, 0x85, 0x0e, 0xcc, 0x85,
+ 0xcd, 0x16, 0x8f, 0x24, 0x10, 0x11, 0x0e, 0x2c, 0xb1, 0x74, 0x39, 0x17, 0x03, 0x77, 0xa9, 0x89,
+ 0x96, 0xe0, 0x94, 0x5e, 0x52, 0xd6, 0xde, 0xf1, 0x2c, 0x8a, 0x24, 0x52, 0x9d, 0xc5, 0x38, 0xaf,
+ 0x4e, 0x96, 0x94, 0xb0, 0x98, 0xb3, 0xed, 0x3f, 0x87, 0x94, 0x28, 0xc6, 0x79, 0x75, 0xdc, 0x35,
+ 0x18, 0xd9, 0xf0, 0x22, 0xd5, 0xf1, 0x0f, 0xc2, 0x44, 0x25, 0x6c, 0x4a, 0x75, 0x68, 0x85, 0xec,
+ 0x90, 0x86, 0xe8, 0x32, 0x7f, 0x3c, 0x27, 0x53, 0x86, 0x3b, 0xb0, 0xdd, 0xff, 0x7a, 0x1e, 0x94,
+ 0x58, 0xe9, 0x41, 0x38, 0xb5, 0x54, 0xb4, 0x70, 0xd1, 0x72, 0xb4, 0xb0, 0xda, 0xbb, 0x32, 0x11,
+ 0xc3, 0x49, 0x1a, 0x31, 0x3c, 0x60, 0x3b, 0x62, 0x58, 0x29, 0xf1, 0x1d, 0x51, 0xc3, 0x5f, 0x76,
+ 0x60, 0x34, 0x08, 0xab, 0x44, 0xb9, 0x78, 0x07, 0xd9, 0x0a, 0x7f, 0xd1, 0xde, 0xe5, 0x0b, 0x1e,
+ 0xfd, 0x2a, 0xc8, 0xf3, 0x48, 0x76, 0xb5, 0xe5, 0xeb, 0x45, 0xd8, 0x68, 0x07, 0x5a, 0xd0, 0x6c,
+ 0xe7, 0xdc, 0x45, 0xf5, 0x60, 0xde, 0x19, 0xf4, 0x8e, 0x86, 0xf0, 0x9b, 0x9a, 0x1e, 0x3a, 0x6c,
+ 0xcb, 0x26, 0x2c, 0xaf, 0x36, 0x6a, 0x9e, 0x36, 0x99, 0x1b, 0x3d, 0xd5, 0x4f, 0x5d, 0x18, 0xe0,
+ 0x21, 0xef, 0x22, 0x5d, 0x19, 0x73, 0x00, 0xf3, 0x70, 0x78, 0x2c, 0x4a, 0x50, 0x22, 0xc3, 0x48,
+ 0x46, 0x6c, 0xbd, 0x74, 0x62, 0x84, 0xa9, 0xe4, 0xc7, 0x91, 0xa0, 0x67, 0x75, 0xdb, 0xc6, 0x68,
+ 0x2f, 0xb6, 0x8d, 0xb1, 0xae, 0x76, 0x8d, 0xcf, 0x39, 0x30, 0x5a, 0xd1, 0x5e, 0x1e, 0x29, 0x3d,
+ 0x6e, 0xeb, 0x85, 0xf5, 0xbc, 0x07, 0x62, 0xb8, 0x5f, 0xd1, 0x78, 0xe9, 0xc4, 0xe0, 0xce, 0x72,
+ 0xb4, 0x32, 0x43, 0x0e, 0x53, 0xa5, 0xac, 0xe4, 0x3e, 0x31, 0x0d, 0x43, 0x32, 0x1c, 0x97, 0xc2,
+ 0xb0, 0xe0, 0x85, 0x5e, 0x87, 0x21, 0x79, 0x6b, 0x42, 0xdc, 0x2e, 0xc0, 0x36, 0x1c, 0x3d, 0xa6,
+ 0x37, 0x59, 0x26, 0x76, 0xe4, 0x50, 0xac, 0x38, 0xa2, 0x3a, 0xf4, 0x55, 0xbd, 0x9a, 0xb8, 0x67,
+ 0xb0, 0x6a, 0x27, 0x71, 0xae, 0xe4, 0xc9, 0x8e, 0xbc, 0xf3, 0x33, 0x8b, 0x98, 0xb2, 0x40, 0x37,
+ 0xd3, 0xa7, 0x1b, 0x26, 0xac, 0xed, 0xbe, 0xa6, 0xda, 0xc9, 0x75, 0x82, 0x8e, 0x97, 0x20, 0xaa,
+ 0xc2, 0x01, 0xff, 0x17, 0x18, 0xdb, 0x05, 0x3b, 0x99, 0x77, 0x79, 0x2e, 0x9d, 0xd4, 0x89, 0x4f,
+ 0xb9, 0xd4, 0x93, 0xa4, 0x55, 0xfa, 0x59, 0x5b, 0x5c, 0x58, 0x46, 0x18, 0xfe, 0x18, 0xfe, 0xc6,
+ 0xc6, 0x3a, 0x66, 0xd4, 0x51, 0x03, 0x06, 0x5a, 0x2c, 0x36, 0xa8, 0xf4, 0x4e, 0x5b, 0x7b, 0x0b,
+ 0x8f, 0x35, 0xe2, 0x73, 0x93, 0xff, 0x8f, 0x05, 0x0f, 0x74, 0x09, 0x06, 0xf9, 0x0b, 0x44, 0xfc,
+ 0x9e, 0xc7, 0xc8, 0xc5, 0xc9, 0xee, 0xef, 0x18, 0xa5, 0x1b, 0x05, 0xff, 0x1d, 0x63, 0x59, 0x17,
+ 0x7d, 0xde, 0x81, 0x71, 0x2a, 0x51, 0xd3, 0x27, 0x93, 0x4a, 0xc8, 0x96, 0xcc, 0xba, 0x1a, 0x53,
+ 0x8d, 0x44, 0xca, 0x1a, 0x75, 0xec, 0x5c, 0x32, 0xd8, 0xe1, 0x0c, 0x7b, 0xf4, 0x06, 0x0c, 0xc5,
+ 0x7e, 0x95, 0x54, 0xbc, 0x28, 0x2e, 0x9d, 0x3a, 0x9a, 0xa6, 0xa4, 0x2e, 0x3f, 0xc1, 0x08, 0x2b,
+ 0x96, 0xe8, 0x57, 0xd8, 0x9b, 0xb5, 0x95, 0xba, 0xbf, 0x43, 0x56, 0xc2, 0x0a, 0x3f, 0x26, 0x9d,
+ 0xb6, 0xb5, 0xf6, 0xa5, 0x73, 0x53, 0x52, 0x16, 0x9e, 0x30, 0x93, 0x1d, 0xce, 0xf2, 0x47, 0x7f,
+ 0xcd, 0x81, 0x33, 0xfc, 0x6d, 0x89, 0xec, 0x73, 0x29, 0x67, 0x0e, 0x69, 0xf2, 0x62, 0x17, 0x54,
+ 0x66, 0xf2, 0x48, 0xe2, 0x7c, 0x4e, 0x2c, 0x13, 0xb4, 0xf9, 0xc2, 0xd5, 0x59, 0xab, 0xae, 0xef,
+ 0xde, 0x5f, 0xb5, 0x42, 0x4f, 0xc1, 0x48, 0x4b, 0x6c, 0x87, 0x7e, 0xdc, 0x64, 0xd7, 0x8d, 0xfa,
+ 0xf8, 0x45, 0xd0, 0xf5, 0x14, 0x8c, 0x75, 0x1c, 0x23, 0x2d, 0xf8, 0x13, 0xfb, 0xa5, 0x05, 0x47,
+ 0x57, 0x61, 0x24, 0x09, 0x1b, 0x22, 0x33, 0x6e, 0x5c, 0x2a, 0xb1, 0x19, 0x78, 0x3e, 0x6f, 0x6d,
+ 0x6d, 0x28, 0xb4, 0xd4, 0x32, 0x90, 0xc2, 0x62, 0xac, 0xd3, 0x61, 0x21, 0xde, 0xe2, 0xcd, 0x8e,
+ 0x88, 0x99, 0x04, 0xee, 0xcf, 0x84, 0x78, 0xeb, 0x85, 0xd8, 0xc4, 0x45, 0x8b, 0x70, 0xb2, 0xd5,
+ 0x61, 0x53, 0xe0, 0xd7, 0x1c, 0x55, 0x54, 0x4d, 0xa7, 0x41, 0xa1, 0xb3, 0x8e, 0x61, 0x4d, 0x78,
+ 0x60, 0x3f, 0x6b, 0x42, 0x97, 0x24, 0xd9, 0x0f, 0x1e, 0x26, 0x49, 0x36, 0xaa, 0xc2, 0x83, 0x5e,
+ 0x3b, 0x09, 0x59, 0xd6, 0x23, 0xb3, 0x0a, 0x8f, 0x76, 0x7f, 0x98, 0x07, 0xd0, 0xdf, 0xda, 0x9b,
+ 0x7a, 0x70, 0x66, 0x1f, 0x3c, 0xbc, 0x2f, 0x15, 0xf4, 0x2a, 0x0c, 0x11, 0x91, 0xe8, 0xbb, 0xf4,
+ 0x33, 0xb6, 0x94, 0x04, 0x33, 0x75, 0xb8, 0x0c, 0x24, 0xe6, 0x30, 0xac, 0xf8, 0xa1, 0x0d, 0x18,
+ 0xa9, 0x87, 0x71, 0x32, 0xd3, 0xf0, 0xbd, 0x98, 0xc4, 0xa5, 0x87, 0xd8, 0xa4, 0xc9, 0xd5, 0xbd,
+ 0x2e, 0x4b, 0xb4, 0x74, 0xce, 0x5c, 0x4e, 0x6b, 0x62, 0x9d, 0x0c, 0x22, 0xcc, 0x01, 0xce, 0x42,
+ 0xfd, 0xa5, 0x73, 0xef, 0x3c, 0xeb, 0xd8, 0x63, 0x79, 0x94, 0xd7, 0xc3, 0x6a, 0xd9, 0xc4, 0x56,
+ 0x1e, 0x70, 0x1d, 0x88, 0xb3, 0x34, 0xd1, 0x33, 0x30, 0xda, 0x0a, 0xab, 0xe5, 0x16, 0xa9, 0xac,
+ 0x7b, 0x49, 0xa5, 0x5e, 0x9a, 0x32, 0xad, 0x98, 0xeb, 0x5a, 0x19, 0x36, 0x30, 0x51, 0x0b, 0x06,
+ 0x9b, 0x3c, 0x1d, 0x46, 0xe9, 0x11, 0x5b, 0x67, 0x1b, 0x91, 0x5f, 0x43, 0xd8, 0x10, 0xf8, 0x0f,
+ 0x2c, 0xd9, 0xa0, 0xbf, 0xeb, 0xc0, 0x89, 0xcc, 0x05, 0xba, 0xd2, 0x3b, 0xac, 0xa9, 0x2c, 0x26,
+ 0xe1, 0xd9, 0xc7, 0xd8, 0xf0, 0x99, 0xc0, 0xdb, 0x9d, 0x20, 0x9c, 0x6d, 0x11, 0x1f, 0x17, 0x96,
+ 0xd3, 0xa6, 0xf4, 0xa8, 0xbd, 0x71, 0x61, 0x04, 0xe5, 0xb8, 0xb0, 0x1f, 0x58, 0xb2, 0x41, 0x4f,
+ 0xc0, 0xa0, 0x48, 0x3f, 0x59, 0x7a, 0xcc, 0x0c, 0x2b, 0x10, 0x59, 0x2a, 0xb1, 0x2c, 0x9f, 0xfc,
+ 0x00, 0x9c, 0xec, 0x38, 0xba, 0x1d, 0x28, 0xb1, 0xca, 0xaf, 0x39, 0xa0, 0xdf, 0xb8, 0xb7, 0xfe,
+ 0xba, 0xce, 0x33, 0x30, 0x5a, 0xe1, 0x8f, 0x9d, 0xf2, 0x3b, 0xfb, 0xfd, 0xa6, 0x3d, 0x79, 0x4e,
+ 0x2b, 0xc3, 0x06, 0xa6, 0x7b, 0x19, 0x50, 0xe7, 0xd3, 0x07, 0x87, 0x72, 0xcc, 0xfc, 0x7d, 0x07,
+ 0xc6, 0x0c, 0x9d, 0xc1, 0xba, 0xe3, 0x78, 0x01, 0x50, 0xd3, 0x8f, 0xa2, 0x30, 0xd2, 0x5f, 0x95,
+ 0x14, 0x79, 0x35, 0x58, 0x40, 0xc9, 0x6a, 0x47, 0x29, 0xce, 0xa9, 0xe1, 0xfe, 0xa3, 0x7e, 0x48,
+ 0x23, 0xe9, 0x55, 0x62, 0x68, 0xa7, 0x6b, 0x62, 0xe8, 0x27, 0x61, 0xe8, 0xe5, 0x38, 0x0c, 0xd6,
+ 0xd3, 0xf4, 0xd1, 0xea, 0x5b, 0x3c, 0x5b, 0x5e, 0xbb, 0xc2, 0x30, 0x15, 0x06, 0xc3, 0x7e, 0x65,
+ 0xc1, 0x6f, 0x24, 0x9d, 0xf9, 0x85, 0x9f, 0x7d, 0x8e, 0xc3, 0xb1, 0xc2, 0x60, 0x0f, 0x4c, 0xee,
+ 0x10, 0xe5, 0x68, 0x48, 0x1f, 0x98, 0xe4, 0xaf, 0x9a, 0xb0, 0x32, 0x74, 0x01, 0x86, 0x95, 0x93,
+ 0x42, 0x78, 0x3e, 0xd4, 0x48, 0x29, 0x4f, 0x06, 0x4e, 0x71, 0x98, 0x42, 0x28, 0x0c, 0xdb, 0xc2,
+ 0x84, 0x52, 0xb6, 0x71, 0x3c, 0xc9, 0x98, 0xca, 0xb9, 0x6c, 0x97, 0x60, 0xac, 0x58, 0xe6, 0x39,
+ 0xcf, 0x87, 0x8f, 0xc4, 0x79, 0xae, 0x5d, 0xeb, 0x28, 0xf6, 0x7a, 0xad, 0xc3, 0x9c, 0xdb, 0x43,
+ 0x3d, 0xcd, 0xed, 0x4f, 0xf6, 0xc1, 0xe0, 0x35, 0x12, 0xb1, 0xcc, 0xfc, 0x4f, 0xc0, 0xe0, 0x0e,
+ 0xff, 0x37, 0x7b, 0x27, 0x58, 0x60, 0x60, 0x59, 0x4e, 0xbf, 0xdb, 0x66, 0xdb, 0x6f, 0x54, 0xe7,
+ 0xd3, 0x55, 0x9c, 0x66, 0xce, 0x94, 0x05, 0x38, 0xc5, 0xa1, 0x15, 0x6a, 0x54, 0xb3, 0x6f, 0x36,
+ 0xfd, 0x24, 0x1b, 0x0b, 0xb7, 0x28, 0x0b, 0x70, 0x8a, 0x83, 0x1e, 0x83, 0x81, 0x9a, 0x9f, 0x6c,
+ 0x78, 0xb5, 0xac, 0xe7, 0x75, 0x91, 0x41, 0xb1, 0x28, 0x65, 0x6e, 0x37, 0x3f, 0xd9, 0x88, 0x08,
+ 0xb3, 0xec, 0x76, 0xa4, 0x24, 0x59, 0xd4, 0xca, 0xb0, 0x81, 0xc9, 0x9a, 0x14, 0x8a, 0x9e, 0x89,
+ 0x40, 0xe0, 0xb4, 0x49, 0xb2, 0x00, 0xa7, 0x38, 0x74, 0xfe, 0x57, 0xc2, 0x66, 0xcb, 0x6f, 0x88,
+ 0x10, 0x75, 0x6d, 0xfe, 0xcf, 0x09, 0x38, 0x56, 0x18, 0x14, 0x9b, 0x8a, 0x30, 0x2a, 0x7e, 0xb2,
+ 0x8f, 0xf9, 0xad, 0x0b, 0x38, 0x56, 0x18, 0xee, 0x35, 0x18, 0xe3, 0x2b, 0x79, 0xae, 0xe1, 0xf9,
+ 0xcd, 0xc5, 0x39, 0x74, 0xa9, 0xe3, 0x5a, 0xc7, 0x13, 0x39, 0xd7, 0x3a, 0xce, 0x18, 0x95, 0x3a,
+ 0xaf, 0x77, 0xb8, 0x3f, 0x28, 0xc0, 0xd0, 0x31, 0xbe, 0x87, 0x7a, 0xec, 0x4f, 0x7b, 0xa3, 0x9b,
+ 0x99, 0xb7, 0x50, 0xd7, 0x6d, 0xde, 0xd2, 0xda, 0xf7, 0x1d, 0xd4, 0xff, 0x54, 0x80, 0xb3, 0x12,
+ 0x55, 0x9e, 0xe5, 0x16, 0xe7, 0xd8, 0x1b, 0x73, 0x47, 0x3f, 0xd0, 0x91, 0x31, 0xd0, 0xeb, 0xf6,
+ 0x4e, 0xa3, 0x8b, 0x73, 0x5d, 0x87, 0xfa, 0xd5, 0xcc, 0x50, 0x63, 0xab, 0x5c, 0xf7, 0x1f, 0xec,
+ 0x3f, 0x75, 0x60, 0x32, 0x7f, 0xb0, 0x8f, 0xe1, 0xf9, 0xd9, 0x37, 0xcc, 0xe7, 0x67, 0x7f, 0xde,
+ 0xde, 0x14, 0x33, 0xbb, 0xd2, 0xe5, 0x21, 0xda, 0xff, 0xee, 0xc0, 0x69, 0x59, 0x81, 0xed, 0x9e,
+ 0xb3, 0x7e, 0xc0, 0x82, 0x83, 0x8e, 0x7e, 0x9a, 0xbd, 0x6e, 0x4c, 0xb3, 0x17, 0xec, 0x75, 0x5c,
+ 0xef, 0x47, 0xd7, 0x67, 0xfb, 0xff, 0xc4, 0x81, 0x52, 0x5e, 0x85, 0x63, 0xf8, 0xe4, 0xaf, 0x99,
+ 0x9f, 0xfc, 0xda, 0xd1, 0xf4, 0xbc, 0xfb, 0x07, 0x2f, 0x75, 0x1b, 0x28, 0xd4, 0x90, 0x7a, 0x95,
+ 0x63, 0xcb, 0x27, 0xcd, 0x59, 0xe4, 0x2b, 0x68, 0x0d, 0x18, 0x88, 0x59, 0x14, 0x8c, 0x98, 0x02,
+ 0x97, 0x6d, 0x68, 0x5b, 0x94, 0x9e, 0xb0, 0xb1, 0xb3, 0xff, 0xb1, 0xe0, 0xe1, 0xfe, 0x7a, 0x01,
+ 0xce, 0xa9, 0x67, 0xa5, 0xc9, 0x0e, 0x69, 0xa4, 0xeb, 0x83, 0x3d, 0x42, 0xe2, 0xa9, 0x9f, 0xf6,
+ 0x1e, 0x21, 0x49, 0x59, 0xa4, 0x6b, 0x21, 0x85, 0x61, 0x8d, 0x27, 0x2a, 0xc3, 0x19, 0xf6, 0x68,
+ 0xc8, 0x82, 0x1f, 0x78, 0x0d, 0xff, 0x55, 0x12, 0x61, 0xd2, 0x0c, 0x77, 0xbc, 0x86, 0xd0, 0xd4,
+ 0xd5, 0xb5, 0xf0, 0x85, 0x3c, 0x24, 0x9c, 0x5f, 0xb7, 0xe3, 0xc4, 0xdd, 0xd7, 0xeb, 0x89, 0xdb,
+ 0xfd, 0x23, 0x07, 0x46, 0x8f, 0xf1, 0x11, 0xee, 0xd0, 0x5c, 0x12, 0xcf, 0xda, 0x5b, 0x12, 0x5d,
+ 0x96, 0xc1, 0x5e, 0x11, 0x3a, 0xde, 0x25, 0x46, 0x9f, 0x72, 0x54, 0x9c, 0x10, 0x8f, 0xc7, 0x7c,
+ 0xc9, 0x5e, 0x3b, 0x0e, 0x92, 0xcd, 0x14, 0x7d, 0x2d, 0x93, 0xe2, 0xb5, 0x60, 0x2b, 0x4b, 0x58,
+ 0x47, 0x6b, 0x0e, 0x91, 0xea, 0xf5, 0xcb, 0x0e, 0x00, 0x6f, 0xa7, 0xc8, 0x10, 0x4f, 0xdb, 0xb6,
+ 0x79, 0x64, 0x23, 0x45, 0x99, 0xf0, 0xa6, 0xa9, 0x25, 0x94, 0x16, 0x60, 0xad, 0x25, 0x77, 0x91,
+ 0xc3, 0xf5, 0xae, 0xd3, 0xc7, 0x7e, 0xde, 0x81, 0x13, 0x99, 0xe6, 0xe6, 0xd4, 0xdf, 0x32, 0x9f,
+ 0xd1, 0xb4, 0xa0, 0x59, 0x99, 0x79, 0xc3, 0x75, 0xe3, 0xc9, 0x7f, 0x71, 0xc1, 0x78, 0xd0, 0x1d,
+ 0xbd, 0x06, 0xc3, 0xd2, 0xf2, 0x21, 0xa7, 0xb7, 0xcd, 0xe7, 0x84, 0xd5, 0xf1, 0x46, 0x42, 0x62,
+ 0x9c, 0xf2, 0xcb, 0x84, 0x21, 0x16, 0x7a, 0x0a, 0x43, 0xbc, 0xb7, 0x8f, 0x11, 0xe7, 0xdb, 0xa5,
+ 0xfb, 0x8f, 0xc4, 0x2e, 0xfd, 0xa0, 0x75, 0xbb, 0xf4, 0x43, 0xc7, 0x6c, 0x97, 0xd6, 0x9c, 0x84,
+ 0xc5, 0xbb, 0x70, 0x12, 0xbe, 0x06, 0xa7, 0x77, 0xd2, 0x43, 0xa7, 0x9a, 0x49, 0x22, 0x37, 0xd5,
+ 0x13, 0xb9, 0xd6, 0x68, 0x7a, 0x80, 0x8e, 0x13, 0x12, 0x24, 0xda, 0x71, 0x35, 0x8d, 0x80, 0xbc,
+ 0x96, 0x43, 0x0e, 0xe7, 0x32, 0xc9, 0x7a, 0x7b, 0x06, 0x7b, 0xf0, 0xf6, 0x7c, 0xdb, 0x81, 0x33,
+ 0x5e, 0xc7, 0x3d, 0x42, 0x4c, 0xb6, 0x44, 0xc8, 0xc9, 0x75, 0x7b, 0x2a, 0x84, 0x41, 0x5e, 0xb8,
+ 0xd5, 0xf2, 0x8a, 0x70, 0x7e, 0x83, 0xd0, 0xa3, 0xa9, 0xeb, 0x9d, 0xc7, 0xcd, 0xe6, 0xfb, 0xc9,
+ 0xbf, 0x96, 0x8d, 0xe7, 0x01, 0x36, 0xf4, 0x1f, 0xb1, 0x7b, 0xda, 0xb6, 0x10, 0xd3, 0x33, 0x72,
+ 0x17, 0x31, 0x3d, 0x19, 0xd7, 0xdb, 0xa8, 0x25, 0xd7, 0x5b, 0x00, 0x13, 0x7e, 0xd3, 0xab, 0x91,
+ 0xf5, 0x76, 0xa3, 0xc1, 0x2f, 0x06, 0xc9, 0x07, 0x9f, 0x73, 0x2d, 0x78, 0x2b, 0x61, 0xc5, 0x6b,
+ 0x64, 0x9f, 0xfa, 0x57, 0x17, 0xa0, 0x96, 0x32, 0x94, 0x70, 0x07, 0x6d, 0x3a, 0x61, 0x59, 0x92,
+ 0x44, 0x92, 0xd0, 0xd1, 0x66, 0x81, 0x23, 0x43, 0x7c, 0xc2, 0x5e, 0x4e, 0xc1, 0x58, 0xc7, 0x41,
+ 0xcb, 0x30, 0x5c, 0x0d, 0x62, 0x71, 0x25, 0xfa, 0x04, 0x13, 0x66, 0xef, 0xa2, 0x22, 0x70, 0xfe,
+ 0x4a, 0x59, 0x5d, 0x86, 0x7e, 0x30, 0x27, 0xeb, 0xa7, 0x2a, 0xc7, 0x69, 0x7d, 0xb4, 0xca, 0x88,
+ 0x89, 0xa7, 0xec, 0x78, 0x3c, 0xc7, 0xc3, 0x5d, 0x1c, 0x46, 0xf3, 0x57, 0xe4, 0x63, 0x7c, 0x63,
+ 0x82, 0x9d, 0x78, 0x93, 0x2e, 0xa5, 0xa0, 0x3d, 0xbc, 0x7d, 0x72, 0xdf, 0x87, 0xb7, 0x59, 0xba,
+ 0xdf, 0xa4, 0xa1, 0xdc, 0xc3, 0xe7, 0xad, 0xa5, 0xfb, 0x4d, 0x23, 0x25, 0x45, 0xba, 0xdf, 0x14,
+ 0x80, 0x75, 0x96, 0x68, 0xad, 0x9b, 0x9b, 0xfc, 0x14, 0x13, 0x1a, 0x07, 0x77, 0x7a, 0xeb, 0xfe,
+ 0xd2, 0xd3, 0xfb, 0xfa, 0x4b, 0x3b, 0xfc, 0xbb, 0x67, 0x0e, 0xe0, 0xdf, 0xad, 0xb3, 0x44, 0xac,
+ 0x8b, 0x73, 0xc2, 0xa5, 0x6e, 0xe1, 0x7c, 0xc7, 0x52, 0xbf, 0xf0, 0xc8, 0x53, 0xf6, 0x2f, 0xe6,
+ 0x0c, 0xba, 0x06, 0xa8, 0x9f, 0x3b, 0x74, 0x80, 0x3a, 0x15, 0xcf, 0x29, 0x9c, 0x65, 0xf4, 0x2d,
+ 0x0a, 0xf1, 0x9c, 0x82, 0xb1, 0x8e, 0x93, 0xf5, 0x96, 0xde, 0x7f, 0x64, 0xde, 0xd2, 0xc9, 0x63,
+ 0xf0, 0x96, 0x3e, 0xd0, 0xb3, 0xb7, 0xf4, 0x26, 0x9c, 0x6a, 0x85, 0xd5, 0x79, 0x3f, 0x8e, 0xda,
+ 0xec, 0xa6, 0xe4, 0x6c, 0xbb, 0x5a, 0x23, 0x09, 0x73, 0xb7, 0x8e, 0x5c, 0x7c, 0x97, 0xde, 0xc8,
+ 0x16, 0x5b, 0xc8, 0x72, 0x8d, 0x66, 0x2a, 0x30, 0xd3, 0x09, 0x8b, 0xba, 0xcd, 0x29, 0xc4, 0x79,
+ 0x2c, 0x74, 0x3f, 0xed, 0xc3, 0xc7, 0xe3, 0xa7, 0xfd, 0x20, 0x0c, 0xc5, 0xf5, 0x76, 0x52, 0x0d,
+ 0x6f, 0x04, 0xcc, 0x19, 0x3f, 0x3c, 0xfb, 0x0e, 0x65, 0xca, 0x16, 0xf0, 0xdb, 0x7b, 0x53, 0x13,
+ 0xf2, 0x7f, 0xcd, 0x8a, 0x2d, 0x20, 0xe8, 0xeb, 0x5d, 0xee, 0x43, 0xb9, 0x47, 0x79, 0x1f, 0xea,
+ 0xdc, 0x81, 0xee, 0x42, 0xe5, 0x39, 0xa3, 0x1f, 0xf9, 0xa9, 0x73, 0x46, 0x7f, 0xd5, 0x81, 0xb1,
+ 0x1d, 0xdd, 0x65, 0x20, 0x1c, 0xe6, 0x16, 0x02, 0x77, 0x0c, 0x4f, 0xc4, 0xac, 0x4b, 0xe5, 0x9c,
+ 0x01, 0xba, 0x9d, 0x05, 0x60, 0xb3, 0x25, 0x39, 0x41, 0x45, 0x8f, 0xde, 0xab, 0xa0, 0xa2, 0x37,
+ 0x98, 0x1c, 0x93, 0x87, 0x5c, 0xe6, 0x45, 0xb7, 0x1b, 0x53, 0x2c, 0x65, 0xa2, 0x0a, 0x29, 0xd6,
+ 0xf9, 0xa1, 0xcf, 0x39, 0x30, 0x21, 0xcf, 0x65, 0xc2, 0xe5, 0x17, 0x8b, 0xa8, 0x48, 0x9b, 0xc7,
+ 0x41, 0x16, 0x56, 0xbf, 0x91, 0xe1, 0x83, 0x3b, 0x38, 0x53, 0xa9, 0xae, 0x82, 0xd0, 0x6a, 0x31,
+ 0x0b, 0xfe, 0x15, 0x3a, 0xcc, 0x4c, 0x0a, 0xc6, 0x3a, 0x0e, 0xfa, 0x86, 0x03, 0xc5, 0x7a, 0x18,
+ 0x6e, 0xc7, 0xa5, 0x27, 0x98, 0x40, 0x7f, 0xde, 0xb2, 0x6e, 0x7a, 0x99, 0xd2, 0xe6, 0x4a, 0xe9,
+ 0x53, 0xd2, 0x76, 0xc4, 0x60, 0xb7, 0xf7, 0xa6, 0xc6, 0x8d, 0x17, 0xb3, 0xe2, 0xb7, 0xde, 0xd6,
+ 0x20, 0xc2, 0xb6, 0xc9, 0x9a, 0x86, 0xbe, 0xe8, 0xc0, 0xc4, 0x8d, 0x8c, 0x41, 0x43, 0x84, 0x85,
+ 0x62, 0xfb, 0xa6, 0x12, 0x3e, 0xdc, 0x59, 0x28, 0xee, 0x68, 0x01, 0xfa, 0xac, 0x69, 0xe8, 0xe4,
+ 0xf1, 0xa3, 0x16, 0x07, 0x30, 0x63, 0x58, 0xe5, 0xd7, 0x82, 0xf2, 0x2d, 0x9e, 0x77, 0x1d, 0x1f,
+ 0x32, 0x49, 0x3b, 0x93, 0x7e, 0xac, 0x9c, 0xaa, 0xc4, 0xb4, 0xb7, 0x58, 0x58, 0xec, 0xc6, 0xe7,
+ 0xd7, 0xcd, 0x2d, 0x5f, 0x3c, 0x0b, 0xe3, 0xa6, 0x6f, 0x0f, 0xbd, 0xdb, 0x7c, 0x8b, 0xe4, 0x7c,
+ 0xf6, 0x59, 0x87, 0x31, 0x89, 0x6f, 0x3c, 0xed, 0x60, 0xbc, 0xbd, 0x50, 0x38, 0xd2, 0xb7, 0x17,
+ 0xfa, 0x8e, 0xe7, 0xed, 0x85, 0x89, 0xa3, 0x78, 0x7b, 0xe1, 0xe4, 0x81, 0xde, 0x5e, 0xd0, 0xde,
+ 0xbe, 0xe8, 0xbf, 0xc3, 0xdb, 0x17, 0x33, 0x70, 0x42, 0xde, 0xfd, 0x21, 0x22, 0xbd, 0x3d, 0x77,
+ 0xfb, 0xab, 0x87, 0xdc, 0xe7, 0xcc, 0x62, 0x9c, 0xc5, 0xa7, 0x8b, 0xac, 0x18, 0xb0, 0x9a, 0x03,
+ 0xb6, 0x9e, 0xe6, 0x32, 0xa7, 0x16, 0x3b, 0x3e, 0x0b, 0x11, 0x25, 0xa3, 0x9d, 0x8b, 0x0c, 0x76,
+ 0x5b, 0xfe, 0x83, 0x79, 0x0b, 0xd0, 0x8b, 0x50, 0x0a, 0xb7, 0xb6, 0x1a, 0xa1, 0x57, 0x4d, 0x1f,
+ 0x88, 0x90, 0x71, 0x09, 0xfc, 0x2e, 0xac, 0xca, 0x27, 0xbc, 0xd6, 0x05, 0x0f, 0x77, 0xa5, 0x80,
+ 0xbe, 0x4d, 0x15, 0x93, 0x24, 0x8c, 0x48, 0x35, 0xb5, 0xd5, 0x0c, 0xb3, 0x3e, 0x13, 0xeb, 0x7d,
+ 0x2e, 0x9b, 0x7c, 0x78, 0xef, 0xd5, 0x47, 0xc9, 0x94, 0xe2, 0x6c, 0xb3, 0x50, 0x04, 0x67, 0x5b,
+ 0x79, 0xa6, 0xa2, 0x58, 0xdc, 0x58, 0xda, 0xcf, 0x60, 0xa5, 0x9e, 0x2b, 0xcf, 0x35, 0x36, 0xc5,
+ 0xb8, 0x0b, 0x65, 0xfd, 0x11, 0x87, 0xa1, 0xe3, 0x79, 0xc4, 0xe1, 0x4d, 0x80, 0x8a, 0x4c, 0x27,
+ 0x27, 0x8d, 0x0f, 0xcb, 0x56, 0xae, 0xd2, 0x70, 0x9a, 0xda, 0xcb, 0xbd, 0x8a, 0x0d, 0xd6, 0x58,
+ 0xa2, 0xff, 0x9d, 0xfb, 0xca, 0x09, 0xb7, 0xb0, 0xd4, 0xac, 0xcf, 0x89, 0x9f, 0xba, 0x97, 0x4e,
+ 0xfe, 0x9e, 0x03, 0x93, 0x7c, 0xe6, 0x65, 0x95, 0x7b, 0xaa, 0x5a, 0x88, 0xbb, 0x3d, 0xb6, 0x43,
+ 0x57, 0x78, 0x5a, 0x28, 0x83, 0x2b, 0x73, 0x74, 0xef, 0xd3, 0x12, 0xf4, 0xe5, 0x9c, 0x23, 0xc5,
+ 0x09, 0x5b, 0x36, 0xcb, 0xfc, 0xb7, 0x2a, 0x4e, 0xdd, 0xea, 0xe5, 0x14, 0xf1, 0x0f, 0xbb, 0x9a,
+ 0x54, 0x11, 0x6b, 0xde, 0x2f, 0x1c, 0x91, 0x49, 0x55, 0x7f, 0x50, 0xe3, 0x40, 0x86, 0xd5, 0xcf,
+ 0x3b, 0x30, 0xe1, 0x65, 0x42, 0x4d, 0x98, 0x1d, 0xc8, 0x8a, 0x4d, 0x6a, 0x26, 0x4a, 0xe3, 0x57,
+ 0x98, 0x92, 0x97, 0x8d, 0x6a, 0xc1, 0x1d, 0xcc, 0xd1, 0x0f, 0x1c, 0x78, 0x20, 0xf1, 0xe2, 0x6d,
+ 0x9e, 0xae, 0x3a, 0x4e, 0xef, 0xea, 0x8a, 0xc6, 0x9d, 0x66, 0xab, 0xf1, 0x15, 0xeb, 0xab, 0x71,
+ 0xa3, 0x3b, 0x4f, 0xbe, 0x2e, 0x1f, 0x11, 0xeb, 0xf2, 0x81, 0x7d, 0x30, 0xf1, 0x7e, 0x4d, 0x9f,
+ 0xfc, 0x94, 0xc3, 0x9f, 0x35, 0xeb, 0xaa, 0xf2, 0x6d, 0x9a, 0x2a, 0xdf, 0x8a, 0xcd, 0x87, 0x95,
+ 0x74, 0xdd, 0xf3, 0x97, 0x1d, 0x38, 0x9d, 0xb7, 0x23, 0xe5, 0x34, 0xe9, 0x23, 0x66, 0x93, 0x2c,
+ 0x9e, 0xb2, 0xf4, 0x06, 0x59, 0x79, 0xd7, 0x65, 0xf2, 0x0a, 0x3c, 0x7c, 0xa7, 0xaf, 0x78, 0x27,
+ 0x7a, 0x43, 0xba, 0x5a, 0xfc, 0x27, 0xc3, 0x9a, 0x17, 0x32, 0x21, 0x2d, 0xeb, 0x31, 0xdc, 0x01,
+ 0x0c, 0xf8, 0x41, 0xc3, 0x0f, 0x88, 0xb8, 0xaf, 0x69, 0xf3, 0x0c, 0x2b, 0xde, 0x65, 0xa2, 0xd4,
+ 0xb1, 0xe0, 0x72, 0x8f, 0x9d, 0x92, 0xd9, 0x97, 0xee, 0xfa, 0x8f, 0xff, 0xa5, 0xbb, 0x1b, 0x30,
+ 0x7c, 0xc3, 0x4f, 0xea, 0x2c, 0x98, 0x42, 0xf8, 0xfa, 0x2c, 0xdc, 0x73, 0xa4, 0xe4, 0xd2, 0xbe,
+ 0x5f, 0x97, 0x0c, 0x70, 0xca, 0x0b, 0x5d, 0xe0, 0x8c, 0x59, 0xe4, 0x76, 0x36, 0xa4, 0xf6, 0xba,
+ 0x2c, 0xc0, 0x29, 0x0e, 0x1d, 0xac, 0x51, 0xfa, 0x4b, 0xe6, 0x98, 0x12, 0xa9, 0x9f, 0x6d, 0xa4,
+ 0xf4, 0x14, 0x14, 0xf9, 0x6d, 0xe2, 0xeb, 0x1a, 0x0f, 0x6c, 0x70, 0x54, 0xd9, 0xb7, 0x87, 0xba,
+ 0x66, 0xdf, 0x7e, 0x9d, 0x29, 0x6c, 0x89, 0x1f, 0xb4, 0xc9, 0x5a, 0x20, 0xe2, 0xbd, 0x57, 0xec,
+ 0xdc, 0x7d, 0xe6, 0x34, 0xf9, 0x11, 0x3c, 0xfd, 0x8d, 0x35, 0x7e, 0x9a, 0xcb, 0x65, 0x64, 0x5f,
+ 0x97, 0x4b, 0x6a, 0x72, 0x19, 0xb5, 0x6e, 0x72, 0x49, 0x48, 0xcb, 0x8a, 0xc9, 0xe5, 0xa7, 0xca,
+ 0x1c, 0xf0, 0xa7, 0x0e, 0x20, 0xa5, 0x77, 0x29, 0x81, 0x7a, 0x0c, 0x41, 0x95, 0x1f, 0x73, 0x00,
+ 0x02, 0xf5, 0x1e, 0xaa, 0xdd, 0x5d, 0x90, 0xd3, 0x4c, 0x1b, 0x90, 0xc2, 0xb0, 0xc6, 0xd3, 0xfd,
+ 0x63, 0x27, 0x8d, 0x5d, 0x4e, 0xfb, 0x7e, 0x0c, 0x41, 0x64, 0xbb, 0x66, 0x10, 0xd9, 0x86, 0x45,
+ 0xd3, 0xbd, 0xea, 0x46, 0x97, 0x70, 0xb2, 0x1f, 0x17, 0xe0, 0x84, 0x8e, 0x5c, 0x26, 0xc7, 0xf1,
+ 0xb1, 0x6f, 0x18, 0x11, 0xb4, 0x57, 0xed, 0xf6, 0xb7, 0x2c, 0x3c, 0x40, 0x79, 0xd1, 0xda, 0x6f,
+ 0x66, 0xa2, 0xb5, 0xaf, 0xdb, 0x67, 0xbd, 0x7f, 0xc8, 0xf6, 0x7f, 0x76, 0xe0, 0x54, 0xa6, 0xc6,
+ 0x31, 0x4c, 0xb0, 0x1d, 0x73, 0x82, 0x3d, 0x67, 0xbd, 0xd7, 0x5d, 0x66, 0xd7, 0x37, 0x0b, 0x1d,
+ 0xbd, 0x65, 0x87, 0xb8, 0x4f, 0x3a, 0x50, 0xa4, 0xda, 0xb2, 0x8c, 0xe7, 0xfa, 0xc8, 0x91, 0xcc,
+ 0x00, 0xa6, 0xd7, 0x0b, 0xe9, 0xac, 0xda, 0xc7, 0x60, 0x98, 0x73, 0x9f, 0xfc, 0x84, 0x03, 0x90,
+ 0x22, 0xdd, 0x2b, 0x15, 0xd8, 0xfd, 0x4e, 0x01, 0xce, 0xe4, 0x4e, 0x23, 0xf4, 0x69, 0x65, 0x91,
+ 0x73, 0x6c, 0x47, 0x2b, 0x1a, 0x8c, 0x74, 0xc3, 0xdc, 0x98, 0x61, 0x98, 0x13, 0xf6, 0xb8, 0x7b,
+ 0x75, 0x80, 0x11, 0x62, 0x5a, 0x1b, 0xac, 0x1f, 0x39, 0x69, 0x00, 0xac, 0xca, 0x6b, 0xf4, 0x67,
+ 0xf0, 0x12, 0x8f, 0xfb, 0x63, 0xed, 0x86, 0x83, 0xec, 0xe8, 0x31, 0xc8, 0x8a, 0x1b, 0xa6, 0xac,
+ 0xc0, 0xf6, 0xfd, 0xc8, 0x5d, 0x84, 0xc5, 0x2b, 0x90, 0xe7, 0x58, 0xee, 0x2d, 0xc9, 0xa4, 0x71,
+ 0x1d, 0xb6, 0xd0, 0xf3, 0x75, 0xd8, 0x31, 0x18, 0x79, 0xc1, 0x57, 0x09, 0x4a, 0x67, 0xa7, 0xbf,
+ 0xfb, 0xc3, 0xf3, 0xf7, 0x7d, 0xef, 0x87, 0xe7, 0xef, 0xfb, 0xc1, 0x0f, 0xcf, 0xdf, 0xf7, 0xb1,
+ 0x5b, 0xe7, 0x9d, 0xef, 0xde, 0x3a, 0xef, 0x7c, 0xef, 0xd6, 0x79, 0xe7, 0x07, 0xb7, 0xce, 0x3b,
+ 0xff, 0xf6, 0xd6, 0x79, 0xe7, 0x6f, 0xfc, 0xbb, 0xf3, 0xf7, 0xbd, 0x30, 0x24, 0x3b, 0xf6, 0xff,
+ 0x02, 0x00, 0x00, 0xff, 0xff, 0xf5, 0x63, 0x43, 0x02, 0x38, 0xda, 0x00, 0x00,
}
func (m *Amount) Marshal() (dAtA []byte, err error) {
@@ -9201,6 +9232,20 @@ func (m *Mutex) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if len(m.Selectors) > 0 {
+ for iNdEx := len(m.Selectors) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.Selectors[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1a
+ }
+ }
i -= len(m.Namespace)
copy(dAtA[i:], m.Namespace)
i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))
@@ -10963,6 +11008,20 @@ func (m *SemaphoreRef) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if len(m.Selectors) > 0 {
+ for iNdEx := len(m.Selectors) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.Selectors[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1a
+ }
+ }
i -= len(m.Namespace)
copy(dAtA[i:], m.Namespace)
i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))
@@ -11332,6 +11391,39 @@ func (m *SuspendTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *SyncSelector) 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 *SyncSelector) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *SyncSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ i -= len(m.Template)
+ copy(dAtA[i:], m.Template)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Template)))
+ i--
+ dAtA[i] = 0x12
+ i -= len(m.Name)
+ copy(dAtA[i:], m.Name)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))
+ i--
+ dAtA[i] = 0xa
+ return len(dAtA) - i, nil
+}
+
func (m *Synchronization) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -15663,6 +15755,12 @@ func (m *Mutex) Size() (n int) {
n += 1 + l + sovGenerated(uint64(l))
l = len(m.Namespace)
n += 1 + l + sovGenerated(uint64(l))
+ if len(m.Selectors) > 0 {
+ for _, e := range m.Selectors {
+ l = e.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ }
return n
}
@@ -16321,6 +16419,12 @@ func (m *SemaphoreRef) Size() (n int) {
}
l = len(m.Namespace)
n += 1 + l + sovGenerated(uint64(l))
+ if len(m.Selectors) > 0 {
+ for _, e := range m.Selectors {
+ l = e.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ }
return n
}
@@ -16454,6 +16558,19 @@ func (m *SuspendTemplate) Size() (n int) {
return n
}
+func (m *SyncSelector) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Name)
+ n += 1 + l + sovGenerated(uint64(l))
+ l = len(m.Template)
+ n += 1 + l + sovGenerated(uint64(l))
+ return n
+}
+
func (m *Synchronization) Size() (n int) {
if m == nil {
return 0
@@ -18530,9 +18647,15 @@ func (this *Mutex) String() string {
if this == nil {
return "nil"
}
+ repeatedStringForSelectors := "[]SyncSelector{"
+ for _, f := range this.Selectors {
+ repeatedStringForSelectors += strings.Replace(strings.Replace(f.String(), "SyncSelector", "SyncSelector", 1), `&`, ``, 1) + ","
+ }
+ repeatedStringForSelectors += "}"
s := strings.Join([]string{`&Mutex{`,
`Name:` + fmt.Sprintf("%v", this.Name) + `,`,
`Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`,
+ `Selectors:` + repeatedStringForSelectors + `,`,
`}`,
}, "")
return s
@@ -18986,9 +19109,15 @@ func (this *SemaphoreRef) String() string {
if this == nil {
return "nil"
}
+ repeatedStringForSelectors := "[]SyncSelector{"
+ for _, f := range this.Selectors {
+ repeatedStringForSelectors += strings.Replace(strings.Replace(f.String(), "SyncSelector", "SyncSelector", 1), `&`, ``, 1) + ","
+ }
+ repeatedStringForSelectors += "}"
s := strings.Join([]string{`&SemaphoreRef{`,
`ConfigMapKeyRef:` + strings.Replace(fmt.Sprintf("%v", this.ConfigMapKeyRef), "ConfigMapKeySelector", "v1.ConfigMapKeySelector", 1) + `,`,
`Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`,
+ `Selectors:` + repeatedStringForSelectors + `,`,
`}`,
}, "")
return s
@@ -19089,6 +19218,17 @@ func (this *SuspendTemplate) String() string {
}, "")
return s
}
+func (this *SyncSelector) String() string {
+ if this == nil {
+ return "nil"
+ }
+ s := strings.Join([]string{`&SyncSelector{`,
+ `Name:` + fmt.Sprintf("%v", this.Name) + `,`,
+ `Template:` + fmt.Sprintf("%v", this.Template) + `,`,
+ `}`,
+ }, "")
+ return s
+}
func (this *Synchronization) String() string {
if this == nil {
return "nil"
@@ -32382,6 +32522,40 @@ func (m *Mutex) Unmarshal(dAtA []byte) error {
}
m.Namespace = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Selectors", 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
+ }
+ m.Selectors = append(m.Selectors, SyncSelector{})
+ if err := m.Selectors[len(m.Selectors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -38007,6 +38181,40 @@ func (m *SemaphoreRef) Unmarshal(dAtA []byte) error {
}
m.Namespace = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Selectors", 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
+ }
+ m.Selectors = append(m.Selectors, SyncSelector{})
+ if err := m.Selectors[len(m.Selectors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -39104,6 +39312,120 @@ func (m *SuspendTemplate) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *SyncSelector) 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: SyncSelector: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: SyncSelector: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ 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.Name = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ 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.Template = string(dAtA[iNdEx:postIndex])
+ 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 *Synchronization) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
diff --git a/pkg/apis/workflow/v1alpha1/generated.proto b/pkg/apis/workflow/v1alpha1/generated.proto
index 5ae06f70e020..de61ad86ea47 100644
--- a/pkg/apis/workflow/v1alpha1/generated.proto
+++ b/pkg/apis/workflow/v1alpha1/generated.proto
@@ -976,6 +976,9 @@ message Mutex {
// Namespace is the namespace of the mutex, default: [namespace of workflow]
optional string namespace = 2;
+
+ // Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to mutex key to make concurrency more customizable
+ repeated SyncSelector selectors = 3;
}
// MutexHolding describes the mutex and the object which is holding it.
@@ -1468,6 +1471,9 @@ message SemaphoreRef {
// Namespace is the namespace of the configmap, default: [namespace of workflow]
optional string namespace = 2;
+
+ // Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to semaphore key to make concurrency more customizable
+ repeated SyncSelector selectors = 3;
}
message SemaphoreStatus {
@@ -1562,6 +1568,15 @@ message SuspendTemplate {
optional string duration = 1;
}
+// Synchronization selector
+message SyncSelector {
+ // Name of the selector
+ optional string name = 1;
+
+ // Template replaced with global variables
+ optional string template = 2;
+}
+
// Synchronization holds synchronization lock configuration
message Synchronization {
// Semaphore holds the Semaphore configuration - deprecated, use semaphores instead
diff --git a/pkg/apis/workflow/v1alpha1/openapi_generated.go b/pkg/apis/workflow/v1alpha1/openapi_generated.go
index a89ff0719d32..ddc9c623f9b0 100644
--- a/pkg/apis/workflow/v1alpha1/openapi_generated.go
+++ b/pkg/apis/workflow/v1alpha1/openapi_generated.go
@@ -132,6 +132,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.SubmitOpts": schema_pkg_apis_workflow_v1alpha1_SubmitOpts(ref),
"github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.SuppliedValueFrom": schema_pkg_apis_workflow_v1alpha1_SuppliedValueFrom(ref),
"github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.SuspendTemplate": schema_pkg_apis_workflow_v1alpha1_SuspendTemplate(ref),
+ "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.SyncSelector": schema_pkg_apis_workflow_v1alpha1_SyncSelector(ref),
"github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.Synchronization": schema_pkg_apis_workflow_v1alpha1_Synchronization(ref),
"github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.SynchronizationStatus": schema_pkg_apis_workflow_v1alpha1_SynchronizationStatus(ref),
"github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.TTLStrategy": schema_pkg_apis_workflow_v1alpha1_TTLStrategy(ref),
@@ -3994,9 +3995,25 @@ func schema_pkg_apis_workflow_v1alpha1_Mutex(ref common.ReferenceCallback) commo
Format: "",
},
},
+ "selectors": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to mutex key to make concurrency more customizable",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.SyncSelector"),
+ },
+ },
+ },
+ },
+ },
},
},
},
+ Dependencies: []string{
+ "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.SyncSelector"},
}
}
@@ -5885,11 +5902,25 @@ func schema_pkg_apis_workflow_v1alpha1_SemaphoreRef(ref common.ReferenceCallback
Format: "",
},
},
+ "selectors": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to semaphore key to make concurrency more customizable",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.SyncSelector"),
+ },
+ },
+ },
+ },
+ },
},
},
},
Dependencies: []string{
- "k8s.io/api/core/v1.ConfigMapKeySelector"},
+ "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.SyncSelector", "k8s.io/api/core/v1.ConfigMapKeySelector"},
}
}
@@ -6169,6 +6200,33 @@ func schema_pkg_apis_workflow_v1alpha1_SuspendTemplate(ref common.ReferenceCallb
}
}
+func schema_pkg_apis_workflow_v1alpha1_SyncSelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Synchronization selector",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the selector",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "template": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Template replaced with global variables",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
func schema_pkg_apis_workflow_v1alpha1_Synchronization(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
diff --git a/pkg/apis/workflow/v1alpha1/workflow_types.go b/pkg/apis/workflow/v1alpha1/workflow_types.go
index c90ebd76dd38..7229f5c5c1b0 100644
--- a/pkg/apis/workflow/v1alpha1/workflow_types.go
+++ b/pkg/apis/workflow/v1alpha1/workflow_types.go
@@ -1665,12 +1665,23 @@ func (s *Synchronization) getSemaphoreConfigMapRef() *apiv1.ConfigMapKeySelector
return nil
}
+// Synchronization selector
+type SyncSelector struct {
+ // Name of the selector
+ Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`
+
+ // Template replaced with global variables
+ Template string `json:"template,omitempty" protobuf:"bytes,2,opt,name=template"`
+}
+
// SemaphoreRef is a reference of Semaphore
type SemaphoreRef struct {
// ConfigMapKeyRef is configmap selector for Semaphore configuration
ConfigMapKeyRef *apiv1.ConfigMapKeySelector `json:"configMapKeyRef,omitempty" protobuf:"bytes,1,opt,name=configMapKeyRef"`
// Namespace is the namespace of the configmap, default: [namespace of workflow]
Namespace string `json:"namespace,omitempty" protobuf:"bytes,2,opt,name=namespace"`
+ // Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to semaphore key to make concurrency more customizable
+ Selectors []SyncSelector `json:"selectors,omitempty" protobuf:"bytes,3,opt,name=selectors"`
}
// Mutex holds Mutex configuration
@@ -1679,6 +1690,8 @@ type Mutex struct {
Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`
// Namespace is the namespace of the mutex, default: [namespace of workflow]
Namespace string `json:"namespace,omitempty" protobuf:"bytes,2,opt,name=namespace"`
+ // Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to mutex key to make concurrency more customizable
+ Selectors []SyncSelector `json:"selectors,omitempty" protobuf:"bytes,3,opt,name=selectors"`
}
// WorkflowTemplateRef is a reference to a WorkflowTemplate resource.
diff --git a/pkg/apis/workflow/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/workflow/v1alpha1/zz_generated.deepcopy.go
index 7592ca05ced8..9c9e687e493a 100644
--- a/pkg/apis/workflow/v1alpha1/zz_generated.deepcopy.go
+++ b/pkg/apis/workflow/v1alpha1/zz_generated.deepcopy.go
@@ -2023,6 +2023,11 @@ func (in *Metrics) DeepCopy() *Metrics {
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Mutex) DeepCopyInto(out *Mutex) {
*out = *in
+ if in.Selectors != nil {
+ in, out := &in.Selectors, &out.Selectors
+ *out = make([]SyncSelector, len(*in))
+ copy(*out, *in)
+ }
return
}
@@ -2866,6 +2871,11 @@ func (in *SemaphoreRef) DeepCopyInto(out *SemaphoreRef) {
*out = new(v1.ConfigMapKeySelector)
(*in).DeepCopyInto(*out)
}
+ if in.Selectors != nil {
+ in, out := &in.Selectors, &out.Selectors
+ *out = make([]SyncSelector, len(*in))
+ copy(*out, *in)
+ }
return
}
@@ -3042,6 +3052,22 @@ func (in *SuspendTemplate) DeepCopy() *SuspendTemplate {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *SyncSelector) DeepCopyInto(out *SyncSelector) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncSelector.
+func (in *SyncSelector) DeepCopy() *SyncSelector {
+ if in == nil {
+ return nil
+ }
+ out := new(SyncSelector)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Synchronization) DeepCopyInto(out *Synchronization) {
*out = *in
@@ -3053,7 +3079,7 @@ func (in *Synchronization) DeepCopyInto(out *Synchronization) {
if in.Mutex != nil {
in, out := &in.Mutex, &out.Mutex
*out = new(Mutex)
- **out = **in
+ (*in).DeepCopyInto(*out)
}
if in.Semaphores != nil {
in, out := &in.Semaphores, &out.Semaphores
@@ -3073,7 +3099,7 @@ func (in *Synchronization) DeepCopyInto(out *Synchronization) {
if (*in)[i] != nil {
in, out := &(*in)[i], &(*out)[i]
*out = new(Mutex)
- **out = **in
+ (*in).DeepCopyInto(*out)
}
}
}
diff --git a/pkg/plugins/executor/swagger.yml b/pkg/plugins/executor/swagger.yml
index 6830ec022f9f..5d9226a62da0 100644
--- a/pkg/plugins/executor/swagger.yml
+++ b/pkg/plugins/executor/swagger.yml
@@ -2269,6 +2269,11 @@ definitions:
namespace:
default: '[namespace of workflow]'
type: string
+ selectors:
+ description: Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to mutex key to make concurrency more customizable
+ items:
+ $ref: '#/definitions/SyncSelector'
+ type: array
type: object
NFSVolumeSource:
description: NFS volumes do not support ownership management or SELinux relabeling.
@@ -4116,6 +4121,11 @@ definitions:
namespace:
default: '[namespace of workflow]'
type: string
+ selectors:
+ description: Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to semaphore key to make concurrency more customizable
+ items:
+ $ref: '#/definitions/SyncSelector'
+ type: array
type: object
Sequence:
description: Sequence expands a workflow step into numeric range
@@ -4219,6 +4229,16 @@ definitions:
Could also be a Duration, e.g.: "2m", "6h"
type: string
type: object
+ SyncSelector:
+ description: Synchronization selector
+ properties:
+ name:
+ description: Name of the selector
+ type: string
+ template:
+ description: Template replaced with global variables
+ type: string
+ type: object
Synchronization:
description: Synchronization holds synchronization lock configuration
properties:
diff --git a/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1Mutex.md b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1Mutex.md
index 7e694dee1511..39c35604c865 100644
--- a/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1Mutex.md
+++ b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1Mutex.md
@@ -10,6 +10,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**name** | **String** | name of the mutex | [optional]
**namespace** | **String** | Namespace is the namespace of the mutex, default: [namespace of workflow] | [optional]
+**selectors** | [**List<IoArgoprojWorkflowV1alpha1SyncSelector>**](IoArgoprojWorkflowV1alpha1SyncSelector.md) | Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to mutex key to make concurrency more customizable | [optional]
diff --git a/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1SemaphoreRef.md b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1SemaphoreRef.md
index 03178d50b424..aa05578a7580 100644
--- a/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1SemaphoreRef.md
+++ b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1SemaphoreRef.md
@@ -10,6 +10,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**configMapKeyRef** | [**io.kubernetes.client.openapi.models.V1ConfigMapKeySelector**](io.kubernetes.client.openapi.models.V1ConfigMapKeySelector.md) | | [optional]
**namespace** | **String** | Namespace is the namespace of the configmap, default: [namespace of workflow] | [optional]
+**selectors** | [**List<IoArgoprojWorkflowV1alpha1SyncSelector>**](IoArgoprojWorkflowV1alpha1SyncSelector.md) | Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to semaphore key to make concurrency more customizable | [optional]
diff --git a/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1SyncSelector.md b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1SyncSelector.md
new file mode 100644
index 000000000000..81d05cbfbbf0
--- /dev/null
+++ b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1SyncSelector.md
@@ -0,0 +1,15 @@
+
+
+# IoArgoprojWorkflowV1alpha1SyncSelector
+
+Synchronization selector
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **String** | Name of the selector | [optional]
+**template** | **String** | Template replaced with global variables | [optional]
+
+
+
diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_mutex.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_mutex.py
index 0a15d05c6ba2..bdd9dceb86c2 100644
--- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_mutex.py
+++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_mutex.py
@@ -29,6 +29,10 @@
from argo_workflows.exceptions import ApiAttributeError
+def lazy_import():
+ from argo_workflows.model.io_argoproj_workflow_v1alpha1_sync_selector import IoArgoprojWorkflowV1alpha1SyncSelector
+ globals()['IoArgoprojWorkflowV1alpha1SyncSelector'] = IoArgoprojWorkflowV1alpha1SyncSelector
+
class IoArgoprojWorkflowV1alpha1Mutex(ModelNormal):
"""NOTE: This class is auto generated by OpenAPI Generator.
@@ -66,6 +70,7 @@ def additional_properties_type():
This must be a method because a model may have properties that are
of type self, this must run after the class is loaded
"""
+ lazy_import()
return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
_nullable = False
@@ -80,9 +85,11 @@ def openapi_types():
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
+ lazy_import()
return {
'name': (str,), # noqa: E501
'namespace': (str,), # noqa: E501
+ 'selectors': ([IoArgoprojWorkflowV1alpha1SyncSelector],), # noqa: E501
}
@cached_property
@@ -93,6 +100,7 @@ def discriminator():
attribute_map = {
'name': 'name', # noqa: E501
'namespace': 'namespace', # noqa: E501
+ 'selectors': 'selectors', # noqa: E501
}
read_only_vars = {
@@ -138,6 +146,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
_visited_composed_classes = (Animal,)
name (str): name of the mutex. [optional] # noqa: E501
namespace (str): Namespace is the namespace of the mutex, default: [namespace of workflow]. [optional] # noqa: E501
+ selectors ([IoArgoprojWorkflowV1alpha1SyncSelector]): Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to mutex key to make concurrency more customizable. [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
@@ -221,6 +230,7 @@ def __init__(self, *args, **kwargs): # noqa: E501
_visited_composed_classes = (Animal,)
name (str): name of the mutex. [optional] # noqa: E501
namespace (str): Namespace is the namespace of the mutex, default: [namespace of workflow]. [optional] # noqa: E501
+ selectors ([IoArgoprojWorkflowV1alpha1SyncSelector]): Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to mutex key to make concurrency more customizable. [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_semaphore_ref.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_semaphore_ref.py
index 0d382bc48a74..75b5a280f971 100644
--- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_semaphore_ref.py
+++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_semaphore_ref.py
@@ -31,7 +31,9 @@
def lazy_import():
from argo_workflows.model.config_map_key_selector import ConfigMapKeySelector
+ from argo_workflows.model.io_argoproj_workflow_v1alpha1_sync_selector import IoArgoprojWorkflowV1alpha1SyncSelector
globals()['ConfigMapKeySelector'] = ConfigMapKeySelector
+ globals()['IoArgoprojWorkflowV1alpha1SyncSelector'] = IoArgoprojWorkflowV1alpha1SyncSelector
class IoArgoprojWorkflowV1alpha1SemaphoreRef(ModelNormal):
@@ -89,6 +91,7 @@ def openapi_types():
return {
'config_map_key_ref': (ConfigMapKeySelector,), # noqa: E501
'namespace': (str,), # noqa: E501
+ 'selectors': ([IoArgoprojWorkflowV1alpha1SyncSelector],), # noqa: E501
}
@cached_property
@@ -99,6 +102,7 @@ def discriminator():
attribute_map = {
'config_map_key_ref': 'configMapKeyRef', # noqa: E501
'namespace': 'namespace', # noqa: E501
+ 'selectors': 'selectors', # noqa: E501
}
read_only_vars = {
@@ -144,6 +148,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
_visited_composed_classes = (Animal,)
config_map_key_ref (ConfigMapKeySelector): [optional] # noqa: E501
namespace (str): Namespace is the namespace of the configmap, default: [namespace of workflow]. [optional] # noqa: E501
+ selectors ([IoArgoprojWorkflowV1alpha1SyncSelector]): Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to semaphore key to make concurrency more customizable. [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
@@ -227,6 +232,7 @@ def __init__(self, *args, **kwargs): # noqa: E501
_visited_composed_classes = (Animal,)
config_map_key_ref (ConfigMapKeySelector): [optional] # noqa: E501
namespace (str): Namespace is the namespace of the configmap, default: [namespace of workflow]. [optional] # noqa: E501
+ selectors ([IoArgoprojWorkflowV1alpha1SyncSelector]): Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to semaphore key to make concurrency more customizable. [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_sync_selector.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_sync_selector.py
new file mode 100644
index 000000000000..d4dbf8f407ce
--- /dev/null
+++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_sync_selector.py
@@ -0,0 +1,259 @@
+"""
+ Argo Workflows API
+
+ Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/latest/ # noqa: E501
+
+ The version of the OpenAPI document: VERSION
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from argo_workflows.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from argo_workflows.exceptions import ApiAttributeError
+
+
+
+class IoArgoprojWorkflowV1alpha1SyncSelector(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'name': (str,), # noqa: E501
+ 'template': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'name': 'name', # noqa: E501
+ 'template': 'template', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """IoArgoprojWorkflowV1alpha1SyncSelector - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ name (str): Name of the selector. [optional] # noqa: E501
+ template (str): Template replaced with global variables. [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """IoArgoprojWorkflowV1alpha1SyncSelector - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ name (str): Name of the selector. [optional] # noqa: E501
+ template (str): Template replaced with global variables. [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/sdks/python/client/argo_workflows/models/__init__.py b/sdks/python/client/argo_workflows/models/__init__.py
index 75e1b8f38746..1864145b25cc 100644
--- a/sdks/python/client/argo_workflows/models/__init__.py
+++ b/sdks/python/client/argo_workflows/models/__init__.py
@@ -285,6 +285,7 @@
from argo_workflows.model.io_argoproj_workflow_v1alpha1_submit import IoArgoprojWorkflowV1alpha1Submit
from argo_workflows.model.io_argoproj_workflow_v1alpha1_submit_opts import IoArgoprojWorkflowV1alpha1SubmitOpts
from argo_workflows.model.io_argoproj_workflow_v1alpha1_suspend_template import IoArgoprojWorkflowV1alpha1SuspendTemplate
+from argo_workflows.model.io_argoproj_workflow_v1alpha1_sync_selector import IoArgoprojWorkflowV1alpha1SyncSelector
from argo_workflows.model.io_argoproj_workflow_v1alpha1_synchronization import IoArgoprojWorkflowV1alpha1Synchronization
from argo_workflows.model.io_argoproj_workflow_v1alpha1_synchronization_status import IoArgoprojWorkflowV1alpha1SynchronizationStatus
from argo_workflows.model.io_argoproj_workflow_v1alpha1_ttl_strategy import IoArgoprojWorkflowV1alpha1TTLStrategy
diff --git a/sdks/python/client/docs/ClusterWorkflowTemplateServiceApi.md b/sdks/python/client/docs/ClusterWorkflowTemplateServiceApi.md
index f0d815b1073b..487122d51a34 100644
--- a/sdks/python/client/docs/ClusterWorkflowTemplateServiceApi.md
+++ b/sdks/python/client/docs/ClusterWorkflowTemplateServiceApi.md
@@ -1098,11 +1098,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -1112,6 +1124,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -1121,6 +1139,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -5505,11 +5529,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -5519,6 +5555,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -5528,6 +5570,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -10316,11 +10364,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -10330,6 +10390,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -10339,6 +10405,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -12605,11 +12677,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -12619,6 +12703,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -12628,6 +12718,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -17012,11 +17108,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -17026,6 +17134,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -17035,6 +17149,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -21823,11 +21943,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -21837,6 +21969,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -21846,6 +21984,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -24018,11 +24162,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -24032,6 +24188,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -24041,6 +24203,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -28425,11 +28593,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -28439,6 +28619,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -28448,6 +28634,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -33236,11 +33428,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -33250,6 +33454,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -33259,6 +33469,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
diff --git a/sdks/python/client/docs/CronWorkflowServiceApi.md b/sdks/python/client/docs/CronWorkflowServiceApi.md
index 361bc77da1a1..0aa6ba71e7d7 100644
--- a/sdks/python/client/docs/CronWorkflowServiceApi.md
+++ b/sdks/python/client/docs/CronWorkflowServiceApi.md
@@ -1158,11 +1158,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -1172,6 +1184,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -1181,6 +1199,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -5565,11 +5589,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -5579,6 +5615,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -5588,6 +5630,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -10376,11 +10424,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -10390,6 +10450,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -10399,6 +10465,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -12747,11 +12819,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -12761,6 +12845,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -12770,6 +12860,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -17154,11 +17250,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -17168,6 +17276,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -17177,6 +17291,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -21965,11 +22085,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -21979,6 +22111,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -21988,6 +22126,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -24423,11 +24567,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -24437,6 +24593,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -24446,6 +24608,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -28830,11 +28998,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -28844,6 +29024,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -28853,6 +29039,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -33641,11 +33833,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -33655,6 +33859,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -33664,6 +33874,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
diff --git a/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1Mutex.md b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1Mutex.md
index 1075ed386944..a3c3e8419e4f 100644
--- a/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1Mutex.md
+++ b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1Mutex.md
@@ -7,6 +7,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**name** | **str** | name of the mutex | [optional]
**namespace** | **str** | Namespace is the namespace of the mutex, default: [namespace of workflow] | [optional]
+**selectors** | [**[IoArgoprojWorkflowV1alpha1SyncSelector]**](IoArgoprojWorkflowV1alpha1SyncSelector.md) | Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to mutex key to make concurrency more customizable | [optional]
**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1SemaphoreRef.md b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1SemaphoreRef.md
index 86661369b3ab..0d4af078d038 100644
--- a/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1SemaphoreRef.md
+++ b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1SemaphoreRef.md
@@ -7,6 +7,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**config_map_key_ref** | [**ConfigMapKeySelector**](ConfigMapKeySelector.md) | | [optional]
**namespace** | **str** | Namespace is the namespace of the configmap, default: [namespace of workflow] | [optional]
+**selectors** | [**[IoArgoprojWorkflowV1alpha1SyncSelector]**](IoArgoprojWorkflowV1alpha1SyncSelector.md) | Selectors is a list of references to dynamic values (like parameters, labels, annotations) that can be added to semaphore key to make concurrency more customizable | [optional]
**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1SyncSelector.md b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1SyncSelector.md
new file mode 100644
index 000000000000..7d7c73ae5aee
--- /dev/null
+++ b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1SyncSelector.md
@@ -0,0 +1,14 @@
+# IoArgoprojWorkflowV1alpha1SyncSelector
+
+Synchronization selector
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | Name of the selector | [optional]
+**template** | **str** | Template replaced with global variables | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/sdks/python/client/docs/WorkflowServiceApi.md b/sdks/python/client/docs/WorkflowServiceApi.md
index 5065bd3ce070..cb35d223384f 100644
--- a/sdks/python/client/docs/WorkflowServiceApi.md
+++ b/sdks/python/client/docs/WorkflowServiceApi.md
@@ -1113,11 +1113,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -1127,6 +1139,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -1136,6 +1154,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -5520,11 +5544,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -5534,6 +5570,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -5543,6 +5585,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -10331,11 +10379,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -10345,6 +10405,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -10354,6 +10420,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -17132,11 +17204,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -17146,6 +17230,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -17155,6 +17245,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -18557,11 +18653,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -18571,6 +18679,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -18580,6 +18694,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -22964,11 +23084,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -22978,6 +23110,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -22987,6 +23125,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -27775,11 +27919,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -27789,6 +27945,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -27798,6 +27960,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -30106,11 +30274,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -30120,6 +30300,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -30129,6 +30315,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -34513,11 +34705,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -34527,6 +34731,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -34536,6 +34746,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -39324,11 +39540,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -39338,6 +39566,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -39347,6 +39581,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -46125,11 +46365,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -46139,6 +46391,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -46148,6 +46406,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -47550,11 +47814,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -47564,6 +47840,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -47573,6 +47855,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -51957,11 +52245,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -51971,6 +52271,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -51980,6 +52286,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -56768,11 +57080,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -56782,6 +57106,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -56791,6 +57121,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
diff --git a/sdks/python/client/docs/WorkflowTemplateServiceApi.md b/sdks/python/client/docs/WorkflowTemplateServiceApi.md
index 2319839824d7..77331e14a6c2 100644
--- a/sdks/python/client/docs/WorkflowTemplateServiceApi.md
+++ b/sdks/python/client/docs/WorkflowTemplateServiceApi.md
@@ -1100,11 +1100,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -1114,6 +1126,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -1123,6 +1141,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -5507,11 +5531,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -5521,6 +5557,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -5530,6 +5572,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -10318,11 +10366,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -10332,6 +10392,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -10341,6 +10407,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -12614,11 +12686,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -12628,6 +12712,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -12637,6 +12727,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -17021,11 +17117,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -17035,6 +17143,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -17044,6 +17158,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -21832,11 +21952,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -21846,6 +21978,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -21855,6 +21993,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -24041,11 +24185,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -24055,6 +24211,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -24064,6 +24226,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -28448,11 +28616,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -28462,6 +28642,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -28471,6 +28657,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
@@ -33259,11 +33451,23 @@ with argo_workflows.ApiClient(configuration) as api_client:
mutex=IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
mutexes=[
IoArgoprojWorkflowV1alpha1Mutex(
name="name_example",
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
semaphore=IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -33273,6 +33477,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
semaphores=[
IoArgoprojWorkflowV1alpha1SemaphoreRef(
@@ -33282,6 +33492,12 @@ with argo_workflows.ApiClient(configuration) as api_client:
optional=True,
),
namespace="namespace_example",
+ selectors=[
+ IoArgoprojWorkflowV1alpha1SyncSelector(
+ name="name_example",
+ template="template_example",
+ ),
+ ],
),
],
),
diff --git a/test/e2e/argo_server_test.go b/test/e2e/argo_server_test.go
index 0159cf5177da..3000261ad47e 100644
--- a/test/e2e/argo_server_test.go
+++ b/test/e2e/argo_server_test.go
@@ -611,7 +611,7 @@ func (s *ArgoServerSuite) TestPermission() {
// Test get wf w/ archive fallback with good token
s.bearerToken = goodToken
s.Run("GetWFsFallbackArchivedGoodToken", func() {
- s.e().GET("/api/v1/workflows/"+uid).
+ s.e().GET("/api/v1/workflows/"+nsName).
WithQuery("listOptions.labelSelector", "workflows.argoproj.io/test").
Expect().
Status(200)
@@ -620,7 +620,7 @@ func (s *ArgoServerSuite) TestPermission() {
// Test get wf w/ archive fallback with bad token
s.bearerToken = badToken
s.Run("GetWFsFallbackArchivedBadToken", func() {
- s.e().GET("/api/v1/workflows/" + uid).
+ s.e().GET("/api/v1/workflows/" + nsName).
Expect().
Status(403)
})
@@ -628,9 +628,9 @@ func (s *ArgoServerSuite) TestPermission() {
// Test get wf w/ archive fallback with fake token
s.bearerToken = fakeToken
s.Run("GetWFsFallbackArchivedFakeToken", func() {
- s.e().GET("/api/v1/workflows/" + uid).
+ s.e().GET("/api/v1/workflows/" + nsName).
Expect().
- Status(403)
+ Status(401)
})
// Test deleting archived wf with bad token
diff --git a/test/e2e/functional/json-argument.yaml b/test/e2e/functional/json-argument.yaml
index 1c40509a683a..846633ba56c3 100644
--- a/test/e2e/functional/json-argument.yaml
+++ b/test/e2e/functional/json-argument.yaml
@@ -6,20 +6,23 @@ spec:
entrypoint: parsejson
arguments:
parameters:
- - name: json1
- value: |
- {"val": "hello one"}
- - name: json2
- value: |
- {"val": "hello two"}
- templates:
- - name: parsejson
- inputs:
- parameters:
- name: json1
+ value: |
+ {"val": "hello one"}
- name: json2
- container:
- image: quay.io/argoproj/argoexec:latest
- imagePullPolicy: Never
- command: [sh, -c]
- args: ["echo '{{inputs.parameters.json1}}' | jq . ; echo '{{inputs.parameters.json2}}' | jq ."]
+ value: |
+ {"val": "hello two"}
+ templates:
+ - name: parsejson
+ inputs:
+ parameters:
+ - name: json1
+ - name: json2
+ container:
+ image: quay.io/codefresh/argoexec:latest
+ imagePullPolicy: Never
+ command: [sh, -c]
+ args:
+ [
+ "echo '{{inputs.parameters.json1}}' | jq . ; echo '{{inputs.parameters.json2}}' | jq .",
+ ]
diff --git a/test/e2e/functional/output-jqfilter-parameters.yaml b/test/e2e/functional/output-jqfilter-parameters.yaml
index 0d6a72560309..26dc97064481 100644
--- a/test/e2e/functional/output-jqfilter-parameters.yaml
+++ b/test/e2e/functional/output-jqfilter-parameters.yaml
@@ -5,100 +5,101 @@ metadata:
spec:
entrypoint: main
templates:
+ # main template that:
+ # * create a configmap with json payload
+ # * extract data using jqFilter from it
+ # * compare the output parameters are what we expect
+ - name: main
+ steps:
+ - - name: create-param
+ template: create-param
- # main template that:
- # * create a configmap with json payload
- # * extract data using jqFilter from it
- # * compare the output parameters are what we expect
- - name: main
- steps:
- - - name: create-param
- template: create-param
+ - - name: get-param
+ template: get-param
- - - name: get-param
- template: get-param
+ - - name: check-param-one-value
+ template: check-param
+ arguments:
+ parameters:
+ - name: key
+ value: "{{steps.get-param.outputs.parameters.one_value}}"
+ - name: value
+ value: "foo"
+ - name: check-param-one-dict
+ template: check-param
+ arguments:
+ parameters:
+ - name: key
+ value: "{{steps.get-param.outputs.parameters.one_dict}}"
+ - name: value
+ value: |
+ {"foo":"bar"}
+ - name: check-param-one-list
+ template: check-param
+ arguments:
+ parameters:
+ - name: key
+ value: "{{steps.get-param.outputs.parameters.one_list}}"
+ - name: value
+ value: |
+ [{"foo":"bar"}]
- - - name: check-param-one-value
- template: check-param
- arguments:
- parameters:
+ # check that key and value parameters are aligned
+ - name: check-param
+ inputs:
+ parameters:
- name: key
- value: "{{steps.get-param.outputs.parameters.one_value}}"
- name: value
- value: "foo"
- - name: check-param-one-dict
- template: check-param
- arguments:
- parameters:
- - name: key
- value: "{{steps.get-param.outputs.parameters.one_dict}}"
- - name: value
- value: |
- {"foo":"bar"}
- - name: check-param-one-list
- template: check-param
- arguments:
- parameters:
- - name: key
- value: "{{steps.get-param.outputs.parameters.one_list}}"
- - name: value
- value: |
- [{"foo":"bar"}]
-
- # check that key and value parameters are aligned
- - name: check-param
- inputs:
- parameters:
- - name: key
- - name: value
- container:
- image: quay.io/argoproj/argoexec:latest
- imagePullPolicy: Never
- command: [sh, -c]
- args: ["
- echo '<{{inputs.parameters.key}}>' > /tmp/input;
- echo '<{{inputs.parameters.value}}>' > /tmp/expected;
- diff /tmp/input /tmp/expected;
- "]
+ container:
+ image: quay.io/codefresh/argoexec:latest
+ imagePullPolicy: Never
+ command: [sh, -c]
+ args: [
+ "
+ echo '<{{inputs.parameters.key}}>' > /tmp/input;
+ echo '<{{inputs.parameters.value}}>' > /tmp/expected;
+ diff /tmp/input /tmp/expected;
+ ",
+ ]
- # extract parameters from a configmap json payload using jqFilter
- - name: get-param
- resource:
- action: get
- manifest: |
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: cm-output-jqfilter-parameters
- outputs:
- parameters:
- - name: one_value
- valueFrom:
- jqFilter: '.data.some | fromjson | .one_value'
- - name: one_dict
- valueFrom:
- jqfilter: '.data.some | fromjson | .one_dict'
- - name: one_list
- valueFrom:
- jqfilter: '.data.some | fromjson | .one_list'
+ # extract parameters from a configmap json payload using jqFilter
+ - name: get-param
+ resource:
+ action: get
+ manifest: |
+ apiVersion: v1
+ kind: ConfigMap
+ metadata:
+ name: cm-output-jqfilter-parameters
+ outputs:
+ parameters:
+ - name: one_value
+ valueFrom:
+ jqFilter: ".data.some | fromjson | .one_value"
+ - name: one_dict
+ valueFrom:
+ jqfilter: ".data.some | fromjson | .one_dict"
+ - name: one_list
+ valueFrom:
+ jqfilter: ".data.some | fromjson | .one_list"
- # create a configmap with json payload
- - name: create-param
- resource:
- action: create
- manifest: |
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: cm-output-jqfilter-parameters
- data:
- some: |
- {
- "one_value": "foo",
- "one_dict": {"foo":"bar"},
- "one_list": [
- {
- "foo":"bar"
- }
- ]
- }
+ # create a configmap with json payload
+ - name: create-param
+ resource:
+ action: create
+ manifest: |
+ apiVersion: v1
+ kind: ConfigMap
+ metadata:
+ name: cm-output-jqfilter-parameters
+ data:
+ some: |
+ {
+ "one_value": "foo",
+ "one_dict": {"foo":"bar"},
+ "one_list": [
+ {
+ "foo":"bar"
+ }
+ ]
+ }
diff --git a/test/e2e/manifests/stress/workflow-controller-deployment.yaml b/test/e2e/manifests/stress/workflow-controller-deployment.yaml
index 226762e2a115..f31d03047fb9 100644
--- a/test/e2e/manifests/stress/workflow-controller-deployment.yaml
+++ b/test/e2e/manifests/stress/workflow-controller-deployment.yaml
@@ -10,10 +10,12 @@ spec:
- name: workflow-controller
args:
- --loglevel=warn
+ - --configmap=workflow-controller-configmap
+ - --executor-image=quay.io/codefresh/argoexec:latest
- --namespaced
- --burst=2048
- --qps=512
- --workflow-workers=128
env:
- name: ARGO_PPROF
- value: "true"
\ No newline at end of file
+ value: "true"
diff --git a/test/e2e/testdata/artifact-workflow-stopped.yaml b/test/e2e/testdata/artifact-workflow-stopped.yaml
index ae85aa207a3f..a6cb3c97c157 100644
--- a/test/e2e/testdata/artifact-workflow-stopped.yaml
+++ b/test/e2e/testdata/artifact-workflow-stopped.yaml
@@ -15,7 +15,7 @@ spec:
- metadata:
name: artifacts
spec:
- accessModes: [ "ReadWriteOnce" ]
+ accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 1Gi
diff --git a/test/e2e/testdata/artifactgc/artgc-dag-wf-self-delete.yaml b/test/e2e/testdata/artifactgc/artgc-dag-wf-self-delete.yaml
index ddce1199d629..90214567c747 100644
--- a/test/e2e/testdata/artifactgc/artgc-dag-wf-self-delete.yaml
+++ b/test/e2e/testdata/artifactgc/artgc-dag-wf-self-delete.yaml
@@ -20,7 +20,7 @@ spec:
- metadata:
name: artifacts
spec:
- accessModes: [ "ReadWriteOnce" ]
+ accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 1Gi
diff --git a/test/e2e/testdata/artifactgc/artgc-dag-wf-stopped-pod-gc-on-pod-completion.yaml b/test/e2e/testdata/artifactgc/artgc-dag-wf-stopped-pod-gc-on-pod-completion.yaml
index a1cf99967bb1..e44296bf73ef 100644
--- a/test/e2e/testdata/artifactgc/artgc-dag-wf-stopped-pod-gc-on-pod-completion.yaml
+++ b/test/e2e/testdata/artifactgc/artgc-dag-wf-stopped-pod-gc-on-pod-completion.yaml
@@ -18,7 +18,7 @@ spec:
- metadata:
name: artifacts
spec:
- accessModes: [ "ReadWriteOnce" ]
+ accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 1Gi
diff --git a/test/e2e/testdata/artifactgc/artgc-dag-wf-stopped.yaml b/test/e2e/testdata/artifactgc/artgc-dag-wf-stopped.yaml
index 12251ae51238..ae4f428a9d01 100644
--- a/test/e2e/testdata/artifactgc/artgc-dag-wf-stopped.yaml
+++ b/test/e2e/testdata/artifactgc/artgc-dag-wf-stopped.yaml
@@ -20,7 +20,7 @@ spec:
- metadata:
name: artifacts
spec:
- accessModes: [ "ReadWriteOnce" ]
+ accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 1Gi
diff --git a/test/e2e/testdata/retry-on-stopped.yaml b/test/e2e/testdata/retry-on-stopped.yaml
index 6b7276f570cb..734c98cba2f3 100644
--- a/test/e2e/testdata/retry-on-stopped.yaml
+++ b/test/e2e/testdata/retry-on-stopped.yaml
@@ -24,7 +24,7 @@ spec:
- name: sleep
container:
image: alpine:latest
- command: [ sleep, "10" ]
+ command: [sleep, "10"]
- name: stop
container:
diff --git a/workflow/sync/lock_name.go b/workflow/sync/lock_name.go
index 41d9902af8e1..fcc71cee6937 100644
--- a/workflow/sync/lock_name.go
+++ b/workflow/sync/lock_name.go
@@ -2,6 +2,7 @@ package sync
import (
"fmt"
+ "regexp"
"strings"
"github.com/argoproj/argo-workflows/v3/errors"
@@ -20,14 +21,16 @@ type lockName struct {
ResourceName string
Key string
Kind lockKind
+ Selectors []v1alpha1.SyncSelector
}
-func newLockName(namespace, resourceName, lockKey string, kind lockKind) *lockName {
+func newLockName(namespace, resourceName, lockKey string, kind lockKind, selectors []v1alpha1.SyncSelector) *lockName {
return &lockName{
Namespace: namespace,
ResourceName: resourceName,
Key: lockKey,
Kind: kind,
+ Selectors: selectors,
}
}
@@ -37,7 +40,7 @@ func getSemaphoreLockName(sem *v1alpha1.SemaphoreRef, wfNamespace string) (*lock
if namespace == "" {
namespace = wfNamespace
}
- return newLockName(namespace, sem.ConfigMapKeyRef.Name, sem.ConfigMapKeyRef.Key, lockKindConfigMap), nil
+ return newLockName(namespace, sem.ConfigMapKeyRef.Name, sem.ConfigMapKeyRef.Key, lockKindConfigMap, sem.Selectors), nil
}
return nil, fmt.Errorf("cannot get LockName for a Semaphore without a ConfigMapRef")
}
@@ -47,7 +50,7 @@ func getMutexLockName(mtx *v1alpha1.Mutex, wfNamespace string) *lockName {
if namespace == "" {
namespace = wfNamespace
}
- return newLockName(namespace, mtx.Name, "", lockKindMutex)
+ return newLockName(namespace, mtx.Name, "", lockKindMutex, mtx.Selectors)
}
func getLockName(item *syncItem, wfNamespace string) (*lockName, error) {
@@ -62,7 +65,10 @@ func getLockName(item *syncItem, wfNamespace string) (*lockName, error) {
}
func DecodeLockName(name string) (*lockName, error) {
- items := strings.SplitN(name, "/", 3)
+ splittedLockName := strings.Split(name, "?")
+ lockNameTrimedSelectors := splittedLockName[0]
+ selectors := ParseSelectors(strings.Join(splittedLockName[1:], "?"))
+ items := strings.SplitN(lockNameTrimedSelectors, "/", 3)
if len(items) < 3 {
return nil, errors.New(errors.CodeBadRequest, "Invalid lock key: unknown format")
}
@@ -73,7 +79,7 @@ func DecodeLockName(name string) (*lockName, error) {
switch lockKind {
case lockKindMutex:
- lock = lockName{Namespace: namespace, Kind: lockKind, ResourceName: items[2]}
+ lock = lockName{Namespace: namespace, Kind: lockKind, ResourceName: items[2], Selectors: selectors}
case lockKindConfigMap:
components := strings.Split(items[2], "/")
@@ -81,7 +87,7 @@ func DecodeLockName(name string) (*lockName, error) {
return nil, errors.New(errors.CodeBadRequest, "Invalid ConfigMap lock key: unknown format")
}
- lock = lockName{Namespace: namespace, Kind: lockKind, ResourceName: components[0], Key: components[1]}
+ lock = lockName{Namespace: namespace, Kind: lockKind, ResourceName: components[0], Key: components[1], Selectors: selectors}
default:
return nil, errors.New(errors.CodeBadRequest, fmt.Sprintf("Invalid lock key, unexpected kind: %s", lockKind))
}
@@ -93,11 +99,50 @@ func DecodeLockName(name string) (*lockName, error) {
return &lock, nil
}
+func StringifySelectors(selectors []v1alpha1.SyncSelector) string {
+ joinedSelectors := ""
+ for _, selector := range selectors {
+ // at this point template should be already replaced
+ if selector.Template != "" {
+ // escape & and = chars to decode easily later
+ re := regexp.MustCompile("&|=")
+ escapedSelectorName := re.ReplaceAllString(selector.Name, "-")
+ escapedSelectorValue := re.ReplaceAllString(selector.Template, "-")
+
+ joinedSelectors = joinedSelectors + fmt.Sprintf("%s=%s&", escapedSelectorName, escapedSelectorValue)
+ }
+ }
+ return strings.TrimRight(joinedSelectors, "&")
+}
+
+func ParseSelectors(selectors string) []v1alpha1.SyncSelector {
+ parsedSelectors := []v1alpha1.SyncSelector{}
+ splittedSelectors := strings.Split(selectors, "&")
+
+ for _, selectorStr := range splittedSelectors {
+ keyValPair := strings.Split(selectorStr, "=")
+ if len(keyValPair) == 2 {
+ parsedSelectors = append(parsedSelectors, v1alpha1.SyncSelector{
+ Name: keyValPair[0],
+ Template: keyValPair[1],
+ })
+ }
+ // otherwise consider invalid, do nothing
+ }
+ return parsedSelectors
+}
+
func (ln *lockName) encodeName() string {
- if ln.Kind == lockKindMutex {
- return ln.validateEncoding(fmt.Sprintf("%s/%s/%s", ln.Namespace, ln.Kind, ln.ResourceName))
+ encodingBuilder := &strings.Builder{}
+
+ encodingBuilder.WriteString(fmt.Sprintf("%s/%s/%s", ln.Namespace, ln.Kind, ln.ResourceName))
+ if ln.Kind == lockKindConfigMap {
+ encodingBuilder.WriteString(fmt.Sprintf("/%s", ln.Key))
+ }
+ if selectors := StringifySelectors(ln.Selectors); len(selectors) > 0 {
+ encodingBuilder.WriteString(fmt.Sprintf("?%s", selectors))
}
- return ln.validateEncoding(fmt.Sprintf("%s/%s/%s/%s", ln.Namespace, ln.Kind, ln.ResourceName, ln.Key))
+ return ln.validateEncoding(encodingBuilder.String())
}
func (ln *lockName) validate() error {
diff --git a/workflow/sync/lock_name_test.go b/workflow/sync/lock_name_test.go
index 559c2becdefb..b1a1de759f14 100644
--- a/workflow/sync/lock_name_test.go
+++ b/workflow/sync/lock_name_test.go
@@ -5,6 +5,8 @@ import (
"testing"
"github.com/stretchr/testify/assert"
+
+ "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1"
)
func TestDecodeLockName(t *testing.T) {
@@ -25,6 +27,7 @@ func TestDecodeLockName(t *testing.T) {
ResourceName: "test",
Key: "",
Kind: lockKindMutex,
+ Selectors: []v1alpha1.SyncSelector{},
},
func(t assert.TestingT, err error, i ...interface{}) bool {
return true
@@ -38,6 +41,7 @@ func TestDecodeLockName(t *testing.T) {
ResourceName: "test/foo/bar/baz",
Key: "",
Kind: lockKindMutex,
+ Selectors: []v1alpha1.SyncSelector{},
},
func(t assert.TestingT, err error, i ...interface{}) bool {
return true
@@ -51,6 +55,7 @@ func TestDecodeLockName(t *testing.T) {
ResourceName: "foo",
Key: "bar",
Kind: lockKindConfigMap,
+ Selectors: []v1alpha1.SyncSelector{},
},
func(t assert.TestingT, err error, i ...interface{}) bool {
return true
@@ -64,6 +69,40 @@ func TestDecodeLockName(t *testing.T) {
return err == nil // this should error
},
},
+ {
+ "TestConfigMapSelectorsParsedCorrectly",
+ args{"default/ConfigMap/foo/bar?selector1=selector1-value&selector2=selector2-value"},
+ &lockName{
+ Namespace: "default",
+ ResourceName: "foo",
+ Key: "bar",
+ Kind: lockKindConfigMap,
+ Selectors: []v1alpha1.SyncSelector{
+ {Name: "selector1", Template: "selector1-value"},
+ {Name: "selector2", Template: "selector2-value"},
+ },
+ },
+ func(t assert.TestingT, err error, i ...interface{}) bool {
+ return true
+ },
+ },
+ {
+ "TestMutexSelectorsParsedCorrectly",
+ args{"default/Mutex/test?selector1=selector1-value&selector2=selector2-value"},
+ &lockName{
+ Namespace: "default",
+ ResourceName: "test",
+ Key: "",
+ Kind: lockKindMutex,
+ Selectors: []v1alpha1.SyncSelector{
+ {Name: "selector1", Template: "selector1-value"},
+ {Name: "selector2", Template: "selector2-value"},
+ },
+ },
+ func(t assert.TestingT, err error, i ...interface{}) bool {
+ return true
+ },
+ },
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {