diff --git a/.github/actions/cucumber-integration-test/action.yaml b/.github/actions/cucumber-integration-test/action.yaml new file mode 100644 index 0000000000..0061f01eab --- /dev/null +++ b/.github/actions/cucumber-integration-test/action.yaml @@ -0,0 +1,113 @@ +# +# Copyright (c) 2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2021,2024 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# +--- +name: IRS Cucumber Integration Test execution +description: "Runs the IRS Cucumber Integration Tests" +inputs: + regularUserApiKey: + description: "API Key for IRS regular user" + required: true + adminUserApiKey: + description: "API Key for IRS admin user" + required: true + cucumberPublishToken: + description: "Token to publish the cucumber report" + required: true + executionFilter: + description: "JUnit5 filter for feature file annotations" + required: true + +runs: + using: composite + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: Cache maven packages + uses: actions/cache@v4 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2 + + - name: Prepare expected files + run: | + chmod +x ./local/testing/testdata/prepare-expected-files.sh + ./local/testing/testdata/prepare-expected-files.sh "BPNL00000003AYRE" + shell: bash + + - name: Run Tests with Maven + shell: bash + env: + REGULAR_USER_API_KEY: ${{ inputs.regularUserApiKey }} + ADMIN_USER_API_KEY: ${{ inputs.adminUserApiKey }} + ISSUE_FILTER: ${{ inputs.executionFilter }} + CUCUMBER_PUBLISH_TOKEN: ${{ inputs.cucumberPublishToken }} + # workaround replacement since injecting the token via environment variable does not work + run: | + sed -i "s/CUCUMBER_TOKEN_IRS_PLACEHOLDER/${CUCUMBER_PUBLISH_TOKEN}/g" irs-cucumber-tests/src/test/java/org/eclipse/tractusx/irs/cucumber/RunCucumberTest.java + + mvn clean verify -P cucumber -Dgroups="$ISSUE_FILTER" -pl irs-cucumber-tests -am --batch-mode 2> irs-cucumber-tests/report-banner.txt + + - name: Publish Cucumber Results + uses: EnricoMi/publish-unit-test-result-action@v2.16.1 + if: always() + with: + files: | + irs-cucumber-tests/target/cucumber-junit-report.xml + + - name: Get Cucumber Report + if: always() + shell: bash + id: get-cucumber-report + run: | + grep -E "^│.*│$" irs-cucumber-tests/report-banner.txt > irs-cucumber-tests/cucumber-report.txt + sed -i 's/│//g' irs-cucumber-tests/cucumber-report.txt + cat irs-cucumber-tests/cucumber-report.txt + cat irs-cucumber-tests/cucumber-report.txt >> $GITHUB_STEP_SUMMARY + + - name: Find previous comment in PR + if: always() && github.event_name == 'pull_request' + uses: peter-evans/find-comment@v3 + id: find-comment + with: + issue-number: ${{ github.event.pull_request.number }} + comment-author: 'github-actions[bot]' + body-includes: 'View your Cucumber Report at' + + - name: Create or update comment in PR + if: always() && github.event_name == 'pull_request' + uses: peter-evans/create-or-update-comment@v4 + with: + comment-id: ${{ steps.find-comment.outputs.comment-id }} + issue-number: ${{ github.event.pull_request.number }} + body-path: 'irs-cucumber-tests/cucumber-report.txt' + edit-mode: replace + + - name: Upload Report + if: always() + uses: actions/upload-artifact@v4 + with: + path: 'irs-cucumber-tests/target/report.html' diff --git a/.github/actions/setup-umbrella-env/action.yaml b/.github/actions/setup-umbrella-env/action.yaml new file mode 100644 index 0000000000..cc04c49f9b --- /dev/null +++ b/.github/actions/setup-umbrella-env/action.yaml @@ -0,0 +1,150 @@ +# +# Copyright (c) 2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2021,2024 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# +--- +name: Umbrella E2E Test Environment +description: "Sets up the Umbrella E2E Test Environment" +runs: + using: composite + steps: + - name: Kubernetes KinD Cluster + uses: container-tools/kind-action@0ad70e2299366b0e1552c7240f4e4567148f723e #v2.0.4 + with: + # upgrade version, default (v0.17.0) uses node image v1.21.1 and doesn't work with more recent node image versions + version: v0.20.0 + node_image: 'kindest/node:v1.27.3' + + - name: Get Cluster info + shell: bash + run: kubectl cluster-info --context kind-kind + + - name: Informational - describe node + shell: bash + run: | + kubectl get nodes --show-labels + kubectl describe node + + - name: Set up Helm + uses: azure/setup-helm@b7246b12e77f7134dc2d460a3d5bad15bbe29390 # v4.1.0 + with: + version: 'latest' + + - name: Checkout umbrella chart + uses: actions/checkout@v4 + with: + repository: eclipse-tractusx/tractus-x-umbrella + ref: chore/e2e-irs-preparation + + - name: Build iatp mock + uses: docker/build-push-action@4a13e500e55cf31b7a5d59a38ab2040ab0f42f56 # v5.1.0 + with: + context: ./iatp-mock/ + push: true + tags: kind-registry:5000/iatp-mock:testing + + - name: Install umbrella chart + shell: bash + run: | + helm dependency update charts/tx-data-provider + helm dependency update charts/umbrella + helm install umbrella charts/umbrella -f charts/umbrella/values-adopter-irs.yaml --timeout 5m \ + --namespace e2e-testing --create-namespace --debug \ + --set iatpmock.image.repository=kind-registry:5000/iatp-mock --set iatpmock.image.tag=testing + + - name: Verify installation + if: always() + shell: bash + run: | + kubectl get pods -n e2e-testing + kubectl logs svc/bdrs-server -n e2e-testing + kubectl logs svc/mock-util-service -n e2e-testing + kubectl logs svc/umbrella-dataprovider-edc-controlplane -n e2e-testing + kubectl get ingresses -n e2e-testing + + - name: Checkout IRS chart + uses: actions/checkout@v4 + + - name: Cache maven packages + uses: actions/cache@v4 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2 + + - name: Build IRS + uses: docker/build-push-action@4a13e500e55cf31b7a5d59a38ab2040ab0f42f56 # v5.1.0 + with: + context: . + push: true + tags: kind-registry:5000/irs-api:testing + + - name: Install Helm chart + shell: bash + run: | + helm dependency update ./charts/item-relationship-service + helm install irs ./charts/item-relationship-service --namespace e2e-testing \ + -f ./charts/item-relationship-service/values-umbrella.yaml + + - name: Setup python + uses: actions/setup-python@v5 + with: + python-version: 3.10.7 + cache: 'pip' + - run: pip install -r local/testing/testdata/requirements.txt + shell: bash + + - uses: azure/setup-kubectl@v3 + + - run: | + kubectl wait --for=condition=available deployment/umbrella-dataprovider-dtr --timeout=60s --namespace e2e-testing + kubectl wait --for=condition=available deployment/umbrella-dataprovider-edc-controlplane --timeout=60s --namespace e2e-testing + kubectl wait --for=condition=available deployment/umbrella-dataprovider-edc-dataplane --timeout=60s --namespace e2e-testing + kubectl wait --for=condition=available deployment/umbrella-dataprovider-submodelserver --timeout=60s --namespace e2e-testing + + kubectl port-forward svc/umbrella-dataprovider-dtr 4444:8080 --namespace e2e-testing & + kubectl port-forward svc/umbrella-dataprovider-edc-controlplane 8888:8081 --namespace e2e-testing & + kubectl port-forward svc/umbrella-dataprovider-submodelserver 9999:8080 --namespace e2e-testing & + shell: bash + + - name: Setup test data + run: | + chmod +x ./local/testing/testdata/upload-testdata.sh + ./local/testing/testdata/upload-testdata.sh "TEST2" "BPNL00000003AYRE" "BPNL00000003AZQP" \ + "http://umbrella-dataprovider-submodelserver:8080" "http://localhost:9999" \ + "http://umbrella-dataprovider-dtr:8080/api/v3" "http://localhost:4444/api/v3" \ + "http://umbrella-dataprovider-edc-controlplane:8084" "http://localhost:8888" \ + "http://umbrella-dataprovider-edc-dataplane:8081" + shell: bash + + - name: Wait for deployment + id: deployment-ready + shell: bash + run: | + kubectl wait --for=condition=available deployment/irs-item-relationship-service --timeout=60s --namespace e2e-testing + kubectl port-forward svc/irs-item-relationship-service 8080:8080 --namespace e2e-testing & + + - name: Get Pods + if: always() && steps.deployment-ready.outcome == 'success' + shell: bash + run: | + kubectl get pods --namespace e2e-testing + kubectl logs svc/irs-item-relationship-service -n e2e-testing + + curl --request GET --url http://localhost:8080/irs/aspectmodels \ + --header 'Content-Type: application/json' --header 'X-API-KEY: password' diff --git a/.github/actions/umbrella-irs-logs/action.yaml b/.github/actions/umbrella-irs-logs/action.yaml new file mode 100644 index 0000000000..669323856d --- /dev/null +++ b/.github/actions/umbrella-irs-logs/action.yaml @@ -0,0 +1,46 @@ +# +# Copyright (c) 2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2021,2024 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# +--- +name: IRS Umbrella logs +description: "Retrieves the IRS logs and uploads them as artifact" +runs: + using: composite + steps: + - uses: azure/setup-kubectl@v3 + + - name: Wait for deployment + id: deployment-ready + shell: bash + run: | + kubectl wait --for=condition=available deployment/irs-item-relationship-service --timeout=60s --namespace e2e-testing + + - name: Get IRS logs + if: always() && steps.deployment-ready.outcome == 'success' + id: irs-logs + shell: bash + run: | + kubectl logs svc/irs-item-relationship-service -n e2e-testing > irs_logs.txt + + - name: Upload pod logs + if: always() && steps.irs-logs.outcome == 'success' + uses: actions/upload-artifact@v4 + with: + name: irs_logs-logs + path: irs_logs.txt \ No newline at end of file diff --git a/.github/workflows/cucumber-integration-test-UMBRELLA.yaml b/.github/workflows/cucumber-integration-test-UMBRELLA.yaml new file mode 100644 index 0000000000..ed94a424ca --- /dev/null +++ b/.github/workflows/cucumber-integration-test-UMBRELLA.yaml @@ -0,0 +1,63 @@ +# +# Copyright (c) 2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2021,2024 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# +name: IRS Umbrella Cucumber Integration test execution + +on: + workflow_dispatch: # Trigger manually + push: + branches: + - 'main' + paths-ignore: + - '**/*.md' + - '**/*.txt' + - 'charts/**' + - '.config/**' + - 'docs/**' + - 'local/**' + - 'irs-load-tests/**' + schedule: + - cron: '0 2 * * 1-5' # At 02:00 on every day-of-week from Monday through Friday. + +# Cancel previous Test executions if a new one is triggered. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + execute-e2e-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: setup env + id: setup-env + uses: ./.github/actions/setup-umbrella-env + + - name: trigger integration test + uses: ./.github/actions/cucumber-integration-test + with: + regularUserApiKey: "password" + adminUserApiKey: "password" + cucumberPublishToken: ${{ secrets.IRS_CUCUMBER_PUBLISH_TOKEN }} + executionFilter: "!Ignore & !INACTIVE & INTEGRATION_TEST & UMBRELLA" + + - name: Attach logs + if: always() && steps.setup-env.outcome == 'success' + uses: ./.github/actions/umbrella-irs-logs diff --git a/.github/workflows/tavern-UMBRELLA.yml b/.github/workflows/tavern-UMBRELLA.yml new file mode 100644 index 0000000000..5d50aea864 --- /dev/null +++ b/.github/workflows/tavern-UMBRELLA.yml @@ -0,0 +1,119 @@ +# +# Copyright (c) 2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2021,2024 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# +name: Tavern IRS API Umbrella test + +on: + workflow_dispatch: # Trigger manually + schedule: + - cron: '0 1 * * 1-5' # At 01:00 on every day-of-week from Monday through Friday. + +# Cancel previous Test executions if a new one is triggered. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: setup env + id: setup-env + uses: ./.github/actions/setup-umbrella-env + + - name: Setup python + uses: actions/setup-python@v5 + with: + python-version: 3.10.7 + cache: 'pip' + + - name: Install dependencies + run: | + pip install pytest + pip install py + pip install tavern + pip list + + - name: Run IRS tests + env: + IRS_HOST: 'http://localhost:8080' + IRS_ESS_HOST: 'http://localhost:8080' + REGULAR_USER_API_KEY: 'password' + ADMIN_USER_API_KEY: 'password' + REGULAR_USER_API_KEY_ESS: 'password' + ADMIN_USER_API_KEY_ESS: 'password' + GLOBAL_ASSET_ID_AS_PLANNED: 'urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e' + GLOBAL_ASSET_ID_ESS_AS_BUILT: 'urn:uuid:2c57b0e9-a653-411d-bdcd-64787e9fd3a7' + BPN_ESS_AS_BUILT: 'BPNL00000003CRHK' + BPN_ESS_INCIDENT: 'BPNS00000003B6LU' + BPN_AS_PLANNED: 'BPNL00000003AYRE' + GLOBAL_ASSET_ID_AS_BUILT: 'urn:uuid:4509ea7c-c8d2-41a1-83ca-c214ee34af6c' + BPN_AS_BUILT: 'BPNL00000003AYRE' + run: | + python -m pytest local/testing/api-tests/irs-api-tests.tavern.yaml --junitxml=tavern-results.xml + + - name: Mask credentials + if: always() + run: | + sed "s/access_tok.*:s = '.*'//g" tavern-results.xml | sed "s/Authorization: Bearer .*/Authorization:/g" | uniq > result.xml + + - name: Publish Tavern Results + uses: EnricoMi/publish-unit-test-result-action@v2.16.1 + if: always() + with: + files: | + result.xml + + - name: Run ESS tests + if: always() && steps.setup-env.outcome == 'success' + env: + IRS_HOST: 'http://localhost:8080' + IRS_ESS_HOST: 'http://localhost:8080' + REGULAR_USER_API_KEY: 'password' + ADMIN_USER_API_KEY: 'password' + REGULAR_USER_API_KEY_ESS: 'password' + ADMIN_USER_API_KEY_ESS: 'password' + GLOBAL_ASSET_ID_AS_PLANNED: 'urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e' + GLOBAL_ASSET_ID_ESS_AS_BUILT: 'urn:uuid:2c57b0e9-a653-411d-bdcd-64787e9fd3a7' + BPN_ESS_AS_BUILT: 'BPNL00000003CRHK' + BPN_ESS_INCIDENT: 'BPNS00000003B6LU' + BPN_AS_PLANNED: 'BPNL00000003AYRE' + GLOBAL_ASSET_ID_AS_BUILT: 'urn:uuid:4509ea7c-c8d2-41a1-83ca-c214ee34af6c' + BPN_AS_BUILT: 'BPNL00000003AYRE' + run: | + python -m pytest local/testing/api-tests/irs-ess-api-tests.tavern.yaml --junitxml=tavern-ess-results.xml + + - name: Mask credentials + if: always() + run: | + sed "s/access_tok.*:s = '.*'//g" tavern-ess-results.xml | sed "s/Authorization: Bearer .*/Authorization:/g" | uniq > ess-result.xml + + - name: Publish Tavern Results + uses: EnricoMi/publish-unit-test-result-action@v2.16.1 + if: always() + with: + files: | + ess-result.xml + + + - name: Attach logs + if: always() && steps.setup-env.outcome == 'success' + uses: ./.github/actions/umbrella-irs-logs diff --git a/.github/workflows/tavern-integration.yml b/.github/workflows/tavern-integration.yml index 1b7e042519..fede162979 100644 --- a/.github/workflows/tavern-integration.yml +++ b/.github/workflows/tavern-integration.yml @@ -76,3 +76,30 @@ jobs: with: files: | result.xml + + - name: Run ESS tests + if: always() + env: + IRS_HOST: ${{ 'https://irs.int.demo.catena-x.net' }} + IRS_ESS_HOST: ${{ github.event.inputs.irs-ess-host || 'https://irs-ess.int.demo.catena-x.net' }} + REGULAR_USER_API_KEY: ${{ secrets.INT_REGULAR_USER_API_KEY }} + ADMIN_USER_API_KEY: ${{ secrets.INT_ADMIN_USER_API_KEY }} + GLOBAL_ASSET_ID_AS_PLANNED: ${{ github.event.inputs.global-asset-id-asPlanned || 'urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e' }} + BPN_AS_PLANNED: ${{ github.event.inputs.bpn-asPlanned || 'BPNL00000003AYRE' }} + GLOBAL_ASSET_ID_AS_BUILT: ${{ github.event.inputs.global-asset-id-asBuilt || 'urn:uuid:1b17682e-5e2a-4913-aa1b-7d59a072a3cb' }} + BPN_AS_BUILT: ${{ github.event.inputs.bpn-asBuilt || 'BPNL00000003AYRE' }} + run: | + python -m pytest local/testing/api-tests/irs-ess-api-tests.tavern.yaml --junitxml=tavern-ess-results.xml + + - name: Mask credentials + if: always() + run: | + sed "s/access_tok.*:s = '.*'//g" tavern-ess-results.xml | sed "s/Authorization: Bearer .*/Authorization:/g" | uniq > ess-result.xml + + - name: Publish Tavern Results + uses: EnricoMi/publish-unit-test-result-action@v2.16.1 + if: always() + with: + files: | + ess-result.xml + diff --git a/.github/workflows/tavern.yml b/.github/workflows/tavern.yml index 6697408d49..8be1d29300 100644 --- a/.github/workflows/tavern.yml +++ b/.github/workflows/tavern.yml @@ -99,3 +99,34 @@ jobs: with: files: | result.xml + + - name: Run ESS tests + if: always() + env: + IRS_HOST: ${{ 'https://irs.dev.demo.catena-x.net' }} + IRS_ESS_HOST: ${{ github.event.inputs.irs-ess-host || 'https://irs-ess.int.demo.catena-x.net' }} + REGULAR_USER_API_KEY: ${{ secrets.DEV_REGULAR_USER_API_KEY }} + ADMIN_USER_API_KEY: ${{ secrets.DEV_ADMIN_USER_API_KEY }} + REGULAR_USER_API_KEY_ESS: ${{ secrets.INT_REGULAR_USER_API_KEY }} + ADMIN_USER_API_KEY_ESS: ${{ secrets.INT_ADMIN_USER_API_KEY }} + GLOBAL_ASSET_ID_AS_PLANNED: ${{ github.event.inputs.global-asset-id-asPlanned || 'urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e' }} + GLOBAL_ASSET_ID_ESS_AS_BUILT: ${{ github.event.inputs.global-asset-id-ess-asBuilt || 'urn:uuid:2c57b0e9-a653-411d-bdcd-64787e9fd3a7' }} + BPN_ESS_AS_BUILT: ${{ github.event.inputs.bpn-ess-asBuilt || 'BPNL00000003CRHK' }} + BPN_ESS_INCIDENT: ${{ github.event.inputs.bpn-ess-incident || 'BPNS00000003B6LU' }} + BPN_AS_PLANNED: ${{ github.event.inputs.bpn-asPlanned || 'BPNL00000003AYRE' }} + GLOBAL_ASSET_ID_AS_BUILT: ${{ github.event.inputs.global-asset-id-asBuilt || 'urn:uuid:4509ea7c-c8d2-41a1-83ca-c214ee34af6c' }} + BPN_AS_BUILT: ${{ github.event.inputs.bpn-asBuilt || 'BPNL00000003AVTH' }} + run: | + python -m pytest local/testing/api-tests/irs-ess-api-tests.tavern.yaml --junitxml=tavern-ess-results.xml + + - name: Mask credentials + if: always() + run: | + sed "s/access_tok.*:s = '.*'//g" tavern-ess-results.xml | sed "s/Authorization: Bearer .*/Authorization:/g" | uniq > ess-result.xml + + - name: Publish Tavern Results + uses: EnricoMi/publish-unit-test-result-action@v2.16.1 + if: always() + with: + files: | + ess-result.xml diff --git a/CHANGELOG.md b/CHANGELOG.md index 09221b6454..8abfe33651 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -73,6 +73,7 @@ _**For better traceability add the corresponding GitHub issue number in each cha - Shells in Job response will contain all submodel descriptors returned by provider, instead filtered by aspect-type parameter. #510 - Updated contributing, notice, and readme files for TRG 7 #681 - Handling of expired policies when approving a notification eclipse-tractusx/traceability-foss#639 +- Improve validation for URLs returned by discovery service and dspEndpoint to allow custom top-level-domains. #226 ## Added diff --git a/charts/item-relationship-service/values-umbrella.yaml b/charts/item-relationship-service/values-umbrella.yaml new file mode 100644 index 0000000000..02199ca49a --- /dev/null +++ b/charts/item-relationship-service/values-umbrella.yaml @@ -0,0 +1,118 @@ +# Copyright (c) 2022,2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2021,2024 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. * +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# +image: + repository: kind-registry:5000/irs-api + tag: testing + +resources: + requests: + cpu: 250m + memory: 0.5Gi + +##################### +# IRS Configuration # +##################### +irsUrl: http://irs-item-relationship-service:8080 +bpn: BPNL00000003AZQP +apiKeyAdmin: "password" # Admin auth key, Should be changed! +apiKeyRegular: "password" # View auth key, Should be changed! + +discovery: + oAuthClientId: discovery # ID of the OAuth2 client registration to use, see config spring.security.oauth2.client + discoveryFinderUrl: http://umbrella-discoveryfinder:8080/api/v1.0/administration/connectors/discovery/search + +semanticshub: +# url: http://umbrella-semantic-hub:8080/api/v1/models +# oAuthClientId: semantics + localModels: + # urn:samm:io.catenax.single_level_bom_as_planned:3.0.0#SingleLevelBomAsPlanned + dXJuOnNhbW06aW8uY2F0ZW5heC5zaW5nbGVfbGV2ZWxfYm9tX2FzX3BsYW5uZWQ6My4wLjAjU2luZ2xlTGV2ZWxCb21Bc1BsYW5uZWQ: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIlRoZSBzaW5nbGUtbGV2ZWwgYmlsbCBvZiBtYXRlcmlhbCAoQm9NKXJlcHJlc2VudHMgb25lIHN1Yi1sZXZlbCBvZiBhbiBhc3NlbWJseSBhbmQgZG9lcyBub3QgaW5jbHVkZSBhbnkgbG93ZXItbGV2ZWwgc3ViYXNzZW1ibGllcy4gSW4gdGhlIEFzLVBsYW5uZWQgbGlmZWN5Y2xlIHN0YXRlIGFsbCB2YXJpYW50cyBhcmUgY292ZXJlZCAoXCIxMjAlIEJvTVwiKS5cbklmIG11bHRpcGxlIHZlcnNpb25zIG9mIGNoaWxkIHBhcnRzIGV4aXN0IHRoYXQgY2FuIGJlIGFzc2VtYmxlZCBpbnRvIHRoZSBzYW1lIHBhcmVudCBwYXJ0LCBhbGwgdmVyc2lvbnMgb2YgdGhlIGNoaWxkIHBhcnQgYXJlIGluY2x1ZGVkIGluIHRoZSBCb00uXG5JZiB0aGVyZSBhcmUgbXVsdGlwbGUgc3VwcGxpZXJzIGZvciB0aGUgc2FtZSBjaGlsZCBwYXJ0LCBlYWNoIHN1cHBsaWVyIGhhcyBhbiBlbnRyeSBmb3IgdGhlaXIgY2hpbGQgcGFydCBpbiB0aGUgQm9NLiIsDQogICJ0eXBlIiA6ICJvYmplY3QiLA0KICAiY29tcG9uZW50cyIgOiB7DQogICAgInNjaGVtYXMiIDogew0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnV1aWRfMi4wLjBfVXVpZFY0VHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcHJvdmlkZWQgcmVndWxhciBleHByZXNzaW9uIGVuc3VyZXMgdGhhdCB0aGUgVVVJRCBpcyBjb21wb3NlZCBvZiBmaXZlIGdyb3VwcyBvZiBjaGFyYWN0ZXJzIHNlcGFyYXRlZCBieSBoeXBoZW5zLCBpbiB0aGUgZm9ybSA4LTQtNC00LTEyIGZvciBhIHRvdGFsIG9mIDM2IGNoYXJhY3RlcnMgKDMyIGhleGFkZWNpbWFsIGNoYXJhY3RlcnMgYW5kIDQgaHlwaGVucyksIG9wdGlvbmFsbHkgcHJlZml4ZWQgYnkgXCJ1cm46dXVpZDpcIiB0byBtYWtlIGl0IGFuIElSSS4iLA0KICAgICAgICAicGF0dGVybiIgOiAiKF5bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kKXwoXnVybjp1dWlkOlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQpIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF9ib21fYXNfcGxhbm5lZF8zLjAuMF9EYXRlVGltZVRyYWl0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUmVndWxhciBFeHByZXNzaW9uIHRvIGVuYWJsZSBVVEMgYW5kIFRpbWV6b25lIGZvcm1hdHMgYW5kIHRoZSBwb3NzaWJpbGl0eSB0byBleGNsdWRlIHRpbWUgaW5mb3JtYXRpb24uIiwNCiAgICAgICAgInBhdHRlcm4iIDogIl4tPyhbMS05XVswLTldezMsfXwwWzAtOV17M30pLSgwWzEtOV18MVswLTJdKS0oMFsxLTldfFsxMl1bMC05XXwzWzAxXSkoVCgoWzAxXVswLTldfDJbMC0zXSk6WzAtNV1bMC05XTpbMC01XVswLTldKFxcLlswLTldKyk/fCgyNDowMDowMChcXC4wKyk/KSkoWnwoXFwrfC0pKCgwWzAtOV18MVswLTNdKTpbMC01XVswLTldfDE0OjAwKSk/KT8kIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5xdWFudGl0eV8yLjAuMF9RdWFudGl0eVZhbHVlQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAibnVtYmVyIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcXVhbnRpdHkgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSB1bml0IGV4cHJlc3NlZCBhcyBmbG9hdC4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnF1YW50aXR5XzIuMC4wX0l0ZW1Vbml0RW51bWVyYXRpb24iIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgInBhdHRlcm4iIDogIlthLXpBLVpdKjpbYS16QS1aXSsiLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkVudW1lcmF0aW9uIGZvciBjb21tb24gaXRlbSB1bml0cy4iLA0KICAgICAgICAiZW51bSIgOiBbICJ1bml0OnBpZWNlIiwgInVuaXQ6c2V0IiwgInVuaXQ6cGFpciIsICJ1bml0OnBhZ2UiLCAidW5pdDpjeWNsZSIsICJ1bml0OmtpbG93YXR0SG91ciIsICJ1bml0OmdyYW0iLCAidW5pdDpraWxvZ3JhbSIsICJ1bml0OnRvbm5lTWV0cmljVG9uIiwgInVuaXQ6dG9uVXNPclNob3J0VG9uVWtvcnVzIiwgInVuaXQ6b3VuY2VBdm9pcmR1cG9pcyIsICJ1bml0OnBvdW5kIiwgInVuaXQ6bWV0cmUiLCAidW5pdDpjZW50aW1ldHJlIiwgInVuaXQ6a2lsb21ldHJlIiwgInVuaXQ6aW5jaCIsICJ1bml0OmZvb3QiLCAidW5pdDp5YXJkIiwgInVuaXQ6c3F1YXJlQ2VudGltZXRyZSIsICJ1bml0OnNxdWFyZU1ldHJlIiwgInVuaXQ6c3F1YXJlSW5jaCIsICJ1bml0OnNxdWFyZUZvb3QiLCAidW5pdDpzcXVhcmVZYXJkIiwgInVuaXQ6Y3ViaWNDZW50aW1ldHJlIiwgInVuaXQ6Y3ViaWNNZXRyZSIsICJ1bml0OmN1YmljSW5jaCIsICJ1bml0OmN1YmljRm9vdCIsICJ1bml0OmN1YmljWWFyZCIsICJ1bml0OmxpdHJlIiwgInVuaXQ6bWlsbGlsaXRyZSIsICJ1bml0OmhlY3RvbGl0cmUiLCAidW5pdDpzZWNvbmRVbml0T2ZUaW1lIiwgInVuaXQ6bWludXRlVW5pdE9mVGltZSIsICJ1bml0OmhvdXJVbml0T2ZUaW1lIiwgInVuaXQ6ZGF5IiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnF1YW50aXR5XzIuMC4wX0l0ZW1RdWFudGl0eUNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyBmb3IgbWVhc3VyZW1lbnRzIG9mIGFuIGl0ZW0gKG1hc3MsIGNvdW50LCBsaW5lYXIsIGFyZWEsIHZvbHVtZSwgbWlzYykuIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAidmFsdWUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcXVhbnRpdHkgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSB1bml0LiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQucXVhbnRpdHlfMi4wLjBfUXVhbnRpdHlWYWx1ZUNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgInVuaXQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgdW5pdCBvZiBhbiBpdGVtLiBDb21tb24gdW5pdHMgbWF5IGJlIHJlbGF0ZWQgdG8gbWFzcywgY291bnQsIGxpbmVhciwgYXJlYSwgdm9sdW1lIG9yIG1pc2MuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5xdWFudGl0eV8yLjAuMF9JdGVtVW5pdEVudW1lcmF0aW9uIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgInZhbHVlIiwgInVuaXQiIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zaW5nbGVfbGV2ZWxfYm9tX2FzX3BsYW5uZWRfMy4wLjBfVmFsaWRpdHlQZXJpb2RDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ2hhcmFjdGVyaXN0aWMgZm9yIGEgdmFsaWRpdHkgcGVyaW9kIGRlZmluZWQgYnkgYW4gKG9wdGlvbmFsKXN0YXJ0IGFuZCBhbiAob3B0aW9uYWwpZW5kIHRpbWVzdGFtcC4iLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJ2YWxpZEZyb20iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJTdGFydCBkYXRlIG9mIHZhbGlkaXR5IHBlcmlvZC4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2luZ2xlX2xldmVsX2JvbV9hc19wbGFubmVkXzMuMC4wX0RhdGVUaW1lVHJhaXQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAidmFsaWRUbyIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkVuZCBkYXRlIG9mIHZhbGlkaXR5IHBlcmlvZC4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2luZ2xlX2xldmVsX2JvbV9hc19wbGFubmVkXzMuMC4wX0RhdGVUaW1lVHJhaXQiDQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLmJ1c2luZXNzX3BhcnRuZXJfbnVtYmVyXzIuMC4wX0JwbmxUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwcm92aWRlZCByZWd1bGFyIGV4cHJlc3Npb24gZW5zdXJlcyB0aGF0IHRoZSBCUE5MIGlzIGNvbXBvc2VkIG9mIHByZWZpeCAnQlBOTCcsIDEwIGRpZ2l0cyBhbmQgdHdvIGFscGhhbnVtZXJpYyBsZXR0ZXJzLiIsDQogICAgICAgICJwYXR0ZXJuIiA6ICJeQlBOTFthLXpBLVowLTldezEyfSQiDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2luZ2xlX2xldmVsX2JvbV9hc19wbGFubmVkXzMuMC4wX0NoaWxkRGF0YSIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ2F0ZW5hLVggSUQgYW5kIG1ldGEgZGF0YSBvZiB0aGUgYXNzZW1ibGVkIGNoaWxkIGl0ZW0uIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAiY3JlYXRlZE9uIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGltZXN0YW1wIHdoZW4gdGhlIHJlbGF0aW9uIGJldHdlZW4gdGhlIHBhcmVudCBwYXJ0IGFuZCB0aGUgY2hpbGQgcGFydCB3YXMgY3JlYXRlZCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaW5nbGVfbGV2ZWxfYm9tX2FzX3BsYW5uZWRfMy4wLjBfRGF0ZVRpbWVUcmFpdCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJxdWFudGl0eSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlF1YW50aXR5IG9mIHdoaWNoIHRoZSBjaGlsZCBwYXJ0IHdpbGwgYmUgYXNzZW1ibGVkIGludG8gdGhlIHBhcmVudCBwYXJ0LiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQucXVhbnRpdHlfMi4wLjBfSXRlbVF1YW50aXR5Q2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAibGFzdE1vZGlmaWVkT24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaW1lc3RhbXAgd2hlbiB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gcGFyZW50IHBhcnQgYW5kIGNoaWxkIHBhcnQgd2FzIGxhc3QgbW9kaWZpZWQuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF9ib21fYXNfcGxhbm5lZF8zLjAuMF9EYXRlVGltZVRyYWl0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgInZhbGlkaXR5UGVyaW9kIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHBlcmlvZCBvZiB0aW1lIGR1cmluZyB3aGljaCB0aGUgcGFyZW50LWNoaWxkIHJlbGF0aW9uIGlzIHZhbGlkLiBUaGlzIHJlbGF0ZXMgdG8gd2hldGhlciBhIGNoaWxkIHBhcnQgY2FuIGJlIGJ1aWx0IGludG8gdGhlIHBhcmVudCBwYXJ0IGF0IGEgZ2l2ZW4gdGltZS5cbklmIG5vIHZhbGlkaXR5IHBlcmlvZCBpcyBnaXZlbiB0aGUgcmVsYXRpb24gaXMgY29uc2lkZXJlZCB2YWxpZCBhdCBhbnkgcG9pbnQgaW4gdGltZS4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2luZ2xlX2xldmVsX2JvbV9hc19wbGFubmVkXzMuMC4wX1ZhbGlkaXR5UGVyaW9kQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiYnVzaW5lc3NQYXJ0bmVyIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHN1cHBsaWVyIG9mIHRoZSBnaXZlbiBjaGlsZCBpdGVtLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQuYnVzaW5lc3NfcGFydG5lcl9udW1iZXJfMi4wLjBfQnBubFRyYWl0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImNhdGVuYVhJZCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBDYXRlbmEtWCBJRCBvZiB0aGUgZ2l2ZW4gcGFydCAoZS5nLiB0aGUgY29tcG9uZW50KSwgdmFsaWQgZm9yIHRoZSBDYXRlbmEtWCBkYXRhc3BhY2UuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC51dWlkXzIuMC4wX1V1aWRWNFRyYWl0Ig0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgImNyZWF0ZWRPbiIsICJxdWFudGl0eSIsICJidXNpbmVzc1BhcnRuZXIiLCAiY2F0ZW5hWElkIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2luZ2xlX2xldmVsX2JvbV9hc19wbGFubmVkXzMuMC4wX1NldE9mQ2hpbGRJdGVtc0NoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJTZXQgb2YgY2hpbGQgaXRlbXMgdGhlIHBhcmVudCBvYmplY3Qgd2lsbCBiZSBhc3NlbWJsZWQgYnkgKG9uZSBzdHJ1Y3R1cmFsIGxldmVsIGRvd24pLiIsDQogICAgICAgICJ0eXBlIiA6ICJhcnJheSIsDQogICAgICAgICJpdGVtcyIgOiB7DQogICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2luZ2xlX2xldmVsX2JvbV9hc19wbGFubmVkXzMuMC4wX0NoaWxkRGF0YSINCiAgICAgICAgfSwNCiAgICAgICAgInVuaXF1ZUl0ZW1zIiA6IHRydWUNCiAgICAgIH0NCiAgICB9DQogIH0sDQogICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAiY2F0ZW5hWElkIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIENhdGVuYS1YIElEIG9mIHRoZSBnaXZlbiBwYXJ0IChlLmcuIHRoZSBjb21wb25lbnQpLCB2YWxpZCBmb3IgdGhlIENhdGVuYS1YIGRhdGFzcGFjZS4iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnV1aWRfMi4wLjBfVXVpZFY0VHJhaXQiDQogICAgfSwNCiAgICAiY2hpbGRJdGVtcyIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIlNldCBvZiBjaGlsZCBpdGVtcyBpbiBBcy1QbGFubmVkIGxpZmVjeWNsZSBwaGFzZSwgb2Ygd2hpY2ggdGhlIGdpdmVuIHBhcmVudCBvYmplY3QgaXMgYXNzZW1ibGVkIGJ5IChvbmUgc3RydWN0dXJhbCBsZXZlbCBkb3duKS4iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2luZ2xlX2xldmVsX2JvbV9hc19wbGFubmVkXzMuMC4wX1NldE9mQ2hpbGRJdGVtc0NoYXJhY3RlcmlzdGljIg0KICAgIH0NCiAgfSwNCiAgInJlcXVpcmVkIiA6IFsgImNhdGVuYVhJZCIsICJjaGlsZEl0ZW1zIiBdDQp9 + # urn:samm:io.catenax.part_as_planned:2.0.0#PartAsPlanned + dXJuOnNhbW06aW8uY2F0ZW5heC5wYXJ0X2FzX3BsYW5uZWQ6Mi4wLjAjUGFydEFzUGxhbm5lZA: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIkEgUGFydCBhcyBQbGFubmVkIHJlcHJlc2VudHMgYW4gaXRlbSBpbiB0aGUgQ2F0ZW5hLVggQmlsbCBvZiBNYXRlcmlhbChCT00pIGluIEFzLVBsYW5uZWQgbGlmZWN5Y2xlIHN0YXR1cyBpbiBhIHNwZWNpZmljIHZlcnNpb24uICIsDQogICJ0eXBlIiA6ICJvYmplY3QiLA0KICAiY29tcG9uZW50cyIgOiB7DQogICAgInNjaGVtYXMiIDogew0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnV1aWRfMS4wLjBfVXVpZFY0VHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcHJvdmlkZWQgcmVndWxhciBleHByZXNzaW9uIGVuc3VyZXMgdGhhdCB0aGUgVVVJRCBpcyBjb21wb3NlZCBvZiBmaXZlIGdyb3VwcyBvZiBjaGFyYWN0ZXJzIHNlcGFyYXRlZCBieSBoeXBoZW5zLCBpbiB0aGUgZm9ybSA4LTQtNC00LTEyIGZvciBhIHRvdGFsIG9mIDM2IGNoYXJhY3RlcnMgKDMyIGhleGFkZWNpbWFsIGNoYXJhY3RlcnMgYW5kIDQgaHlwaGVucyksIG9wdGlvbmFsbHkgcHJlZml4ZWQgYnkgXCJ1cm46dXVpZDpcIiB0byBtYWtlIGl0IGFuIElSSS4iLA0KICAgICAgICAicGF0dGVybiIgOiAiKF5bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kKXwoXnVybjp1dWlkOlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQpIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnBhcnRfYXNfcGxhbm5lZF8yLjAuMF9QYXJ0SWRDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwYXJ0IElEIGlzIGEgbXVsdGktY2hhcmFjdGVyIHN0cmluZywgdXN1YWxseSBhc3NpZ25lZCBieSBhbiBFUlAgc3lzdGVtIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnBhcnRfYXNfcGxhbm5lZF8yLjAuMF9QYXJ0TmFtZUNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUGFydCBOYW1lIGluIHN0cmluZyBmb3JtYXQgZnJvbSB0aGUgcmVzcGVjdGl2ZSBzeXN0ZW0gaW4gdGhlIHZhbHVlIGNoYWluIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnBhcnRfYXNfcGxhbm5lZF8yLjAuMF9DbGFzc2lmaWNhdGlvbkVudW1lcmF0aW9uQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBIHBhcnQgdHlwZSBtdXN0IGJlIHBsYWNlZCBpbnRvIG9uZSBvZiB0aGUgZm9sbG93aW5nIGNsYXNzZXM6ICdjb21wb25lbnQnLCAncHJvZHVjdCcsICdzb2Z0d2FyZScsID9hc3NlbWJseT8sICd0b29sJywgb3IgJ3JhdyBtYXRlcmlhbCcuIiwNCiAgICAgICAgImVudW0iIDogWyAicHJvZHVjdCIsICJyYXcgbWF0ZXJpYWwiLCAic29mdHdhcmUiLCAiYXNzZW1ibHkiLCAidG9vbCIsICJjb21wb25lbnQiIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5wYXJ0X2FzX3BsYW5uZWRfMi4wLjBfUGFydFR5cGVJbmZvcm1hdGlvbkNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBwYXJ0IHR5cGUiLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJtYW51ZmFjdHVyZXJQYXJ0SWQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJQYXJ0IElEIGFzIGFzc2lnbmVkIGJ5IHRoZSBtYW51ZmFjdHVyZXIgb2YgdGhlIHBhcnQuIFRoZSBQYXJ0IElEIGlkZW50aWZpZXMgdGhlIHBhcnQgaW4gdGhlIG1hbnVmYWN0dXJlcmBzIGRhdGFzcGFjZS4gVGhlIFBhcnQgSUQgcmVmZXJlbmNlcyBhIHNwZWNpZmljIHZlcnNpb24gb2YgYSBwYXJ0LiBUaGUgdmVyc2lvbiBudW1iZXIgbXVzdCBiZSBpbmNsdWRlZCBpbiB0aGUgUGFydCBJRCBpZiBpdCBpcyBhdmFpbGFibGUuXG5cblRoZSBQYXJ0IElEIGRvZXMgbm90IHJlZmVyZW5jZSBhIHNwZWNpZmljIGluc3RhbmNlIG9mIGEgcGFydCBhbmQgbXVzdCBub3QgYmUgY29uZnVzZWQgd2l0aCB0aGUgc2VyaWFsIG51bWJlci4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXgucGFydF9hc19wbGFubmVkXzIuMC4wX1BhcnRJZENoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgIm5hbWVBdE1hbnVmYWN0dXJlciIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIk5hbWUgb2YgdGhlIHBhcnQgYXMgYXNzaWduZWQgYnkgdGhlIG1hbnVmYWN0dXJlciIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5wYXJ0X2FzX3BsYW5uZWRfMi4wLjBfUGFydE5hbWVDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjbGFzc2lmaWNhdGlvbiIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBjbGFzc2lmaWNhdGlvbiBvZiB0aGUgcGFydCB0eXBlIGFjY29yZGluZyB0byBTVEVQIHN0YW5kYXJkIGRlZmluaXRpb24iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXgucGFydF9hc19wbGFubmVkXzIuMC4wX0NsYXNzaWZpY2F0aW9uRW51bWVyYXRpb25DaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJtYW51ZmFjdHVyZXJQYXJ0SWQiLCAibmFtZUF0TWFudWZhY3R1cmVyIiwgImNsYXNzaWZpY2F0aW9uIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLmJ1c2luZXNzX3BhcnRuZXJfbnVtYmVyXzEuMC4wX0JwbnNDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkJQTlMgKEJ1c2luZXNzIFBhcnRuZXIgTnVtYmVyIFNpdGUpIHJlcHJlc2VudHMgYSBzaXRlIHdoaWNoIGNhbiBiZSBhIHByb2R1Y3Rpb24gcGxhbnQuIEEgc2l0ZSBjYW4gYWxzbyBiZSBlLmcuIGFuIG9mZmljZSBvciBhIHdhcmVob3VzZS4gQW4gaW5mb3JtYXRpb24gcmVsYXRlZCB0byBhIHNpdGUgaXMgZS5nLiBuZWVkZWQgZm9yIHJlcG9ydGluZyBpc3N1ZXMgKEhvdyBtYW55IHNpdGVzIGRvZXMgZS5nLiBCZWlzcGllbCBBRyBoYXZlPyksIHN0YXR1cyBvZiBvcGVyYXRpb24gKG91dCBvZiBvcGVyYXRpb25zIGR1ZSB0byBlbnZpcm9ubWVudGFsIGRpc2FzdGVyKSwgZm9yIGNlcnRpZmljYXRlcyBvbiBzaXRlIGxldmVsIChlLmcuIGVudmlyb25tZW50IGNlcnRpZmljYXRlcykgb3IgZm9yIGludGVybmFsIHJlZ3VsYXRpb25zIG9uIHNpdGUgbGV2ZWwsIChlLmcuIHNlY3VyaXR5IHRvcGljcywgQ29yb25hIHJ1bGVzLC4uLikuIFNldmVyYWwgYWRkcmVzc2VzICg9IEJQTkEgd2l0aCBkaWZmZXJlbnQgc3RyZWV0cyBhbmQgZGlmZmVyZW50IGdhdGVzKSBjYW4gYmVsb25nIHRvIG9uZSBzaXRlLiBBIEJQTlMgc2hvdWxkIGJlIGFsd2F5cyBsaW5rZWQgdG8gb25lIEJQTkwgdmlhIHJlbGF0aW9uc2hpcCAnYmVsb25ncyB0byBsZWdhbCBlbnRpdHknLiINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5wYXJ0X2FzX3BsYW5uZWRfMi4wLjBfRnVuY3Rpb25DaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkRlc2NyaWJlcyB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBmdW5jdGlvbiBmb3IgYSBzaXRlIHJlbGF0ZWQgdG8gdGhlIHJlc3BlY3RpdmUgcGFydCIsDQogICAgICAgICJlbnVtIiA6IFsgInByb2R1Y3Rpb24iLCAid2FyZWhvdXNlIiwgInNwYXJlIHBhcnQgd2FyZWhvdXNlIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UaW1lc3RhbXAiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgInBhdHRlcm4iIDogIi0/KFsxLTldWzAtOV17Myx9fDBbMC05XXszfSktKDBbMS05XXwxWzAtMl0pLSgwWzEtOV18WzEyXVswLTldfDNbMDFdKVQoKFswMV1bMC05XXwyWzAtM10pOlswLTVdWzAtOV06WzAtNV1bMC05XShcXC5bMC05XSspP3woMjQ6MDA6MDAoXFwuMCspPykpKFp8KFxcK3wtKSgoMFswLTldfDFbMC0zXSk6WzAtNV1bMC05XXwxNDowMCkpPyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGVzY3JpYmVzIGEgUHJvcGVydHkgd2hpY2ggY29udGFpbnMgdGhlIGRhdGUgYW5kIHRpbWUgd2l0aCBhbiBvcHRpb25hbCB0aW1lem9uZS4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXgucGFydF9hc19wbGFubmVkXzIuMC4wX3BhcnRTaXRlc0luZm9ybWF0aW9uQXNQbGFubmVkRW50aXR5IiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEZXNjcmliZXMgdGhlIElELCBmdW5jdGlvbiBhbmQgdmFsaWRpdHkgZGF0ZSBvZiBhIHNpdGUgZm9yIHRoZSBhc3NvY2lhdGVkIHBhcnQgaW4gdGhlIEFzUGxhbm5lZCBjb250ZXh0LiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImNhdGVuYVhzaXRlSWQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgaWRlbnRpZmllciBvZiB0aGUgc2l0ZSBhY2NvcmRpbmcgdG8gQ2F0ZW5hLVggQlBETS4gVGhlIGNhdGVuYVhzaXRlSWQgbXVzdCBiZSBhIHZhbGlkIENhdGVuYS1YIEJQTi4gVGhlIEJQTiBpcyBhIHVuaXF1ZSwgdW5jaGFuZ2VhYmxlIGlkZW50aWZpZXIgZm9yIEJ1c2luZXNzIFBhcnRuZXJzIC8gY29tcGFueSBsb2NhdGlvbnMgZnJvbSBmb3VuZGF0aW9uIHRvIGNsb3N1cmUsIHJlZ2FyZGxlc3Mgb2YgdGhlIGRpZmZlcmVudCBidXNpbmVzcyByZWxhdGlvbnNoaXBzIC8gc3RydWN0dXJlcyBiZXR3ZWVuIG9yIHdpdGhpbiB0aGUgQnVzaW5lc3MgUGFydG5lcnMgb3IgY29tcGFueSBsb2NhdGlvbnMuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5idXNpbmVzc19wYXJ0bmVyX251bWJlcl8xLjAuMF9CcG5zQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiZnVuY3Rpb24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgZnVuY3Rpb24gb2YgdGhlIHNpdGUgaW4gcmVsYXRpb24gdG8gdGhlIHBhcnQoaS5lLiB0aGUgYWN0aXZpdHkgd2l0aGluIHRoZSB2YWx1ZSBjaGFpbiBvZiB0aGUgcGFydCB0aGF0IGlzIHBlcmZvcm1lZCBhdCB0aGUgc2l0ZSkiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXgucGFydF9hc19wbGFubmVkXzIuMC4wX0Z1bmN0aW9uQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiZnVuY3Rpb25WYWxpZEZyb20iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaW1lc3RhbXAsIGZyb20gd2hlbiB0aGUgc2l0ZSBoYXMgdGhlIHNwZWNpZmllZCBmdW5jdGlvbiBmb3IgdGhlIGdpdmVuIHBhcnQiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UaW1lc3RhbXAiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiZnVuY3Rpb25WYWxpZFVudGlsIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGltZXN0YW1wLCB1bnRpbCB3aGVuIHRoZSBzaXRlIGhhcyB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9uIGZvciB0aGUgZ2l2ZW4gcGFydCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RpbWVzdGFtcCINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJjYXRlbmFYc2l0ZUlkIiwgImZ1bmN0aW9uIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXgucGFydF9hc19wbGFubmVkXzIuMC4wX3BhcnRTaXRlc0luZm9ybWF0aW9uQXNQbGFubmVkQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBjaGFyYWN0ZXJpc3RpYyBvZiB0aGUgcGFydCBzaXRlIGluZm9ybWF0aW9uIHRoYXQgcmVwcmVzZW50cyBhIHNldCBvZiBwb3NzaWJsZSBzaXRlIHRvIGEgcmVwZWN0aXZlIHBhcnQuICIsDQogICAgICAgICJ0eXBlIiA6ICJhcnJheSIsDQogICAgICAgICJpdGVtcyIgOiB7DQogICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXgucGFydF9hc19wbGFubmVkXzIuMC4wX3BhcnRTaXRlc0luZm9ybWF0aW9uQXNQbGFubmVkRW50aXR5Ig0KICAgICAgICB9LA0KICAgICAgICAidW5pcXVlSXRlbXMiIDogdHJ1ZQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgInByb3BlcnRpZXMiIDogew0KICAgICJjYXRlbmFYSWQiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgZnVsbHkgYW5vbnltb3VzIENhdGVuYS1YIElEIG9mIHRoZSBzZXJpYWxpemVkIHBhcnQsIHZhbGlkIGZvciB0aGUgQ2F0ZW5hLVggZGF0YXNwYWNlLiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQudXVpZF8xLjAuMF9VdWlkVjRUcmFpdCINCiAgICB9LA0KICAgICJwYXJ0VHlwZUluZm9ybWF0aW9uIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHBhcnQgdHlwZSBmcm9tIHdoaWNoIHRoZSBzZXJpYWxpemVkIHBhcnQgaGFzIGJlZW4gaW5zdGFudGlhdGVkIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnBhcnRfYXNfcGxhbm5lZF8yLjAuMF9QYXJ0VHlwZUluZm9ybWF0aW9uQ2hhcmFjdGVyaXN0aWMiDQogICAgfSwNCiAgICAicGFydFNpdGVzSW5mb3JtYXRpb25Bc1BsYW5uZWQiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJBIHNpdGUgaXMgYSBkZWxpbWl0ZWQgZ2VvZ3JhcGhpY2FsIGFyZWEgd2hlcmUgYSBsZWdhbCBlbnRpdHkgZG9lcyBidXNpbmVzcyhnZW9ncmFwaGljYWwgYWRkcmVzcyB3aXRoIGdlbyBjb29yZGluYXRlcykuQSBzaXRlIGFsd2F5cyBoYXMgYSBwcmltYXJ5IHBoeXNpY2FsIGFkZHJlc3MuIEl0IGlzIHBvc3NpYmxlIHRoYXQgZnVydGhlciBwaHlzaWNhbCBhZGRyZXNzZXMgYXJlIHNwZWNpZmllZCBmb3IgdGhlIHNpdGUuIFAuTy4gYm94IGRldGFpbHMgYXJlIG9ubHkgcG9zc2libGUgaW4gYWRkaXRpb24gdG8gdGhlIHBoeXNpY2FsIGFkZHJlc3MuIEEgc2l0ZSBoYXMgYSAxOm4gcmVsYXRpb24gdG8gYWRkcmVzc2VzLCBtZWFucyBhdCBsZWFzdCAxIGFkZHJlc3MgaXMgbmVjZXNzYXJ5IGFuZCBtdWx0aXBsZSBhZGRyZXNzZXMgYXJlIHBvc3NpYmxlLiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5wYXJ0X2FzX3BsYW5uZWRfMi4wLjBfcGFydFNpdGVzSW5mb3JtYXRpb25Bc1BsYW5uZWRDaGFyYWN0ZXJpc3RpYyINCiAgICB9DQogIH0sDQogICJyZXF1aXJlZCIgOiBbICJjYXRlbmFYSWQiLCAicGFydFR5cGVJbmZvcm1hdGlvbiIgXQ0KfQ== + # urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt + dXJuOnNhbW06aW8uY2F0ZW5heC5zaW5nbGVfbGV2ZWxfYm9tX2FzX2J1aWx0OjMuMC4wI1NpbmdsZUxldmVsQm9tQXNCdWlsdA: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIlRoZSBzaW5nbGUtbGV2ZWwgYmlsbCBvZiBtYXRlcmlhbCByZXByZXNlbnRzIG9uZSBzdWItbGV2ZWwgb2YgYW4gYXNzZW1ibHkgYW5kIGRvZXMgbm90IGluY2x1ZGUgYW55IGxvd2VyLWxldmVsIHN1YmFzc2VtYmxpZXMuIFRoZSBhcy1idWlsdCBsaWZlY3ljbGUgcmVmZXJlbmNlcyBhbGwgY2hpbGQgaXRlbXMgYXMgbWFudWZhY3R1cmVkIGJ5IHRoZSBtYW51ZmFjdHVyZXIgcmVmZXJlbmNpbmcgb25seSBjaGlsZCBpdGVtcyBpbiBhbiBhcy1idWlsdCBsaWZlY3ljbGUgdGhlbXNlbHZlcyAoZS5nLiBzZXJpYWwgcGFydHMgb3IgYmF0Y2hlcyksIHVubGVzcyBwYXJ0cyBjYW4gb25seSBiZSB0cmFja2VkIGJ5IGFuIHBhcnQgSUQgKG9uIGEgdHlwZSBsZXZlbCkuXG5cbklmIGl0IGlzIHVuY2xlYXIgd2hpY2ggaXRlbSBoYXMgYmVlbiBidWlsdC1pbiBpbnRvIHRoZSBwYXJlbnQgaXRlbSwgYWxsIHBvdGVudGlhbCBwYXJ0cyBtdXN0IGJlIGxpc3RlZC4gVGhpcyBpcyB0aGUgY2FzZSB3aGVuLCBlLmcuIHRoZSBzYW1lIGl0ZW0gaXMgc3VwcGxpZWQgYnkgdHdvIHN1cHBsaWVycyBhbmQgdGhlIGl0ZW0gaXMgb25seSB0cmFja2VkIGJ5IGEgY3VzdG9tZXIgcGFydCBJRCBkdXJpbmcgYXNzZW1ibHksIHRoZXNlIGl0ZW1zIGNhbiBub3QgYmUgZGlmZmVyZW50aWF0ZWQgZnJvbSBlYWNoIG90aGVyLlxuIiwNCiAgInR5cGUiIDogIm9iamVjdCIsDQogICJjb21wb25lbnRzIiA6IHsNCiAgICAic2NoZW1hcyIgOiB7DQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQudXVpZF8yLjAuMF9VdWlkVjRUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwcm92aWRlZCByZWd1bGFyIGV4cHJlc3Npb24gZW5zdXJlcyB0aGF0IHRoZSBVVUlEIGlzIGNvbXBvc2VkIG9mIGZpdmUgZ3JvdXBzIG9mIGNoYXJhY3RlcnMgc2VwYXJhdGVkIGJ5IGh5cGhlbnMsIGluIHRoZSBmb3JtIDgtNC00LTQtMTIgZm9yIGEgdG90YWwgb2YgMzYgY2hhcmFjdGVycyAoMzIgaGV4YWRlY2ltYWwgY2hhcmFjdGVycyBhbmQgNCBoeXBoZW5zKSwgb3B0aW9uYWxseSBwcmVmaXhlZCBieSBcInVybjp1dWlkOlwiIHRvIG1ha2UgaXQgYW4gSVJJLiIsDQogICAgICAgICJwYXR0ZXJuIiA6ICIoXlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQpfChedXJuOnV1aWQ6WzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCkiDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2luZ2xlX2xldmVsX2JvbV9hc19idWlsdF8zLjAuMF9EYXRlVGltZVRyYWl0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUmVndWxhciBFeHByZXNzaW9uIHRvIGVuYWJsZSBVVEMgYW5kIFRpbWV6b25lIGZvcm1hdHMgYW5kIHRoZSBwb3NzaWJpbGl0eSB0byBleGNsdWRlIHRpbWUgaW5mb3JtYXRpb24uIiwNCiAgICAgICAgInBhdHRlcm4iIDogIl4tPyhbMS05XVswLTldezMsfXwwWzAtOV17M30pLSgwWzEtOV18MVswLTJdKS0oMFsxLTldfFsxMl1bMC05XXwzWzAxXSkoVCgoWzAxXVswLTldfDJbMC0zXSk6WzAtNV1bMC05XTpbMC01XVswLTldKFxcLlswLTldKyk/fCgyNDowMDowMChcXC4wKyk/KSkoWnwoXFwrfC0pKCgwWzAtOV18MVswLTNdKTpbMC01XVswLTldfDE0OjAwKSk/KT8kIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5xdWFudGl0eV8yLjAuMF9RdWFudGl0eVZhbHVlQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAibnVtYmVyIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcXVhbnRpdHkgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSB1bml0IGV4cHJlc3NlZCBhcyBmbG9hdC4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnF1YW50aXR5XzIuMC4wX0l0ZW1Vbml0RW51bWVyYXRpb24iIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgInBhdHRlcm4iIDogIlthLXpBLVpdKjpbYS16QS1aXSsiLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkVudW1lcmF0aW9uIGZvciBjb21tb24gaXRlbSB1bml0cy4iLA0KICAgICAgICAiZW51bSIgOiBbICJ1bml0OnBpZWNlIiwgInVuaXQ6c2V0IiwgInVuaXQ6cGFpciIsICJ1bml0OnBhZ2UiLCAidW5pdDpjeWNsZSIsICJ1bml0OmtpbG93YXR0SG91ciIsICJ1bml0OmdyYW0iLCAidW5pdDpraWxvZ3JhbSIsICJ1bml0OnRvbm5lTWV0cmljVG9uIiwgInVuaXQ6dG9uVXNPclNob3J0VG9uVWtvcnVzIiwgInVuaXQ6b3VuY2VBdm9pcmR1cG9pcyIsICJ1bml0OnBvdW5kIiwgInVuaXQ6bWV0cmUiLCAidW5pdDpjZW50aW1ldHJlIiwgInVuaXQ6a2lsb21ldHJlIiwgInVuaXQ6aW5jaCIsICJ1bml0OmZvb3QiLCAidW5pdDp5YXJkIiwgInVuaXQ6c3F1YXJlQ2VudGltZXRyZSIsICJ1bml0OnNxdWFyZU1ldHJlIiwgInVuaXQ6c3F1YXJlSW5jaCIsICJ1bml0OnNxdWFyZUZvb3QiLCAidW5pdDpzcXVhcmVZYXJkIiwgInVuaXQ6Y3ViaWNDZW50aW1ldHJlIiwgInVuaXQ6Y3ViaWNNZXRyZSIsICJ1bml0OmN1YmljSW5jaCIsICJ1bml0OmN1YmljRm9vdCIsICJ1bml0OmN1YmljWWFyZCIsICJ1bml0OmxpdHJlIiwgInVuaXQ6bWlsbGlsaXRyZSIsICJ1bml0OmhlY3RvbGl0cmUiLCAidW5pdDpzZWNvbmRVbml0T2ZUaW1lIiwgInVuaXQ6bWludXRlVW5pdE9mVGltZSIsICJ1bml0OmhvdXJVbml0T2ZUaW1lIiwgInVuaXQ6ZGF5IiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnF1YW50aXR5XzIuMC4wX0l0ZW1RdWFudGl0eUNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyBmb3IgbWVhc3VyZW1lbnRzIG9mIGFuIGl0ZW0gKG1hc3MsIGNvdW50LCBsaW5lYXIsIGFyZWEsIHZvbHVtZSwgbWlzYykuIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAidmFsdWUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcXVhbnRpdHkgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSB1bml0LiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQucXVhbnRpdHlfMi4wLjBfUXVhbnRpdHlWYWx1ZUNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgInVuaXQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgdW5pdCBvZiBhbiBpdGVtLiBDb21tb24gdW5pdHMgbWF5IGJlIHJlbGF0ZWQgdG8gbWFzcywgY291bnQsIGxpbmVhciwgYXJlYSwgdm9sdW1lIG9yIG1pc2MuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5xdWFudGl0eV8yLjAuMF9JdGVtVW5pdEVudW1lcmF0aW9uIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgInZhbHVlIiwgInVuaXQiIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQuYnVzaW5lc3NfcGFydG5lcl9udW1iZXJfMi4wLjBfQnBubFRyYWl0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHByb3ZpZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbiBlbnN1cmVzIHRoYXQgdGhlIEJQTkwgaXMgY29tcG9zZWQgb2YgcHJlZml4ICdCUE5MJywgMTAgZGlnaXRzIGFuZCB0d28gYWxwaGFudW1lcmljIGxldHRlcnMuIiwNCiAgICAgICAgInBhdHRlcm4iIDogIl5CUE5MW2EtekEtWjAtOV17MTJ9JCINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX0Jvb2xlYW4iIDogew0KICAgICAgICAidHlwZSIgOiAiYm9vbGVhbiIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUmVwcmVzZW50cyBhIGJvb2xlYW4gdmFsdWUgKGkuZS4gYSBcImZsYWdcIikuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF9ib21fYXNfYnVpbHRfMy4wLjBfQ2hpbGREYXRhIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDYXRlbmEtWCBJRCBhbmQgbWV0YSBkYXRhIG9mIHRoZSBhc3NlbWJsZWQgY2hpbGQgaXRlbS4iLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJjcmVhdGVkT24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaW1lc3RhbXAgd2hlbiB0aGUgcmVsYXRpb24gYmV0d2VlbiB0aGUgcGFyZW50IGl0ZW0gYW5kIHRoZSBjaGlsZCBpdGVtIHdhcyBjcmVhdGVkLCBlLmcuIHdoZW4gdGhlIHNlcmlhbGl6ZWQgY2hpbGQgcGFydCB3YXMgYXNzZW1ibGVkIGludG8gdGhlIGdpdmVuIHBhcnQuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF9ib21fYXNfYnVpbHRfMy4wLjBfRGF0ZVRpbWVUcmFpdCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJxdWFudGl0eSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlF1YW50aXR5IG9mIHdoaWNoIHRoZSBjaGlsZCBpdGVtIGlzIGFzc2VtYmxlZCBpbnRvIHRoZSBwYXJlbnQgaXRlbS4gSW4gZ2VuZXJhbCBpdCBpcyAnMScgZm9yIHNlcmlhbGl6ZWQgcGFydHMuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5xdWFudGl0eV8yLjAuMF9JdGVtUXVhbnRpdHlDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJsYXN0TW9kaWZpZWRPbiIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRpbWVzdGFtcCB3aGVuIHRoZSBhc3NlbWJseSByZWxhdGlvbnNoaXAgYmV0d2VlbiBwYXJlbnQgaXRlbSBhbmQgY2hpbGQgaXRlbSB3YXMgbGFzdCBtb2RpZmllZC4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2luZ2xlX2xldmVsX2JvbV9hc19idWlsdF8zLjAuMF9EYXRlVGltZVRyYWl0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImJ1c2luZXNzUGFydG5lciIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBzdXBwbGllciBvZiB0aGUgZ2l2ZW4gY2hpbGQgaXRlbS4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLmJ1c2luZXNzX3BhcnRuZXJfbnVtYmVyXzIuMC4wX0JwbmxUcmFpdCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJoYXNBbHRlcm5hdGl2ZXMiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJFeHByZXNzZXMgd2hldGhlciB0aGUgcGFydCBpcyBidWlsdC1pbiBvciB3ZXRoZXIgaXQgaXMgb25lIG9mIHNldmVyYWwgb3B0aW9ucy4gSWYgdGhlIHZhbHVlIGlzIGZhbHNlLCBpdCBjYW4gYmUgYXNzdW1lZCB0aGlzIGV4YWN0IGl0ZW0gaXMgYnVpbHQtaW4uIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCBpdCBpcyB1bmtub3duIHdldGhlciB0aGlzIG9yIGFuIGFsdGVybmF0aXZlIGl0ZW0gaXMgYnVpbHQtaW4uXG5UaGlzIGlzIHRoZSBjYXNlIHdoZW4sIGUuZy4gdGhlIHNhbWUgaXRlbSBpcyBzdXBwbGllZCBieSB0d28gc3VwcGxpZXJzLCB0aGUgaXRlbSBpcyBvbmx5IHRyYWNrZWQgYnkgYSBjdXN0b21lciBwYXJ0IElEIGR1cmluZyBhc3NlbWJseS4gVGh1cywgdGhlc2UgaXRlbXMgY2FuIG5vdCBiZSBkaWZmZXJlbnRpYXRlZCBmcm9tIGVhY2ggb3RoZXIuXG5cbiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX0Jvb2xlYW4iDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY2F0ZW5hWElkIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIENhdGVuYS1YIElEIG9mIHRoZSBnaXZlbiBwYXJ0IChlLmcuIHRoZSBjb21wb25lbnQpLCB2YWxpZCBmb3IgdGhlIENhdGVuYS1YIGRhdGFzcGFjZS4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnV1aWRfMi4wLjBfVXVpZFY0VHJhaXQiDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicmVxdWlyZWQiIDogWyAiY3JlYXRlZE9uIiwgInF1YW50aXR5IiwgImJ1c2luZXNzUGFydG5lciIsICJoYXNBbHRlcm5hdGl2ZXMiLCAiY2F0ZW5hWElkIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2luZ2xlX2xldmVsX2JvbV9hc19idWlsdF8zLjAuMF9TZXRPZkNoaWxkSXRlbXNDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiU2V0IG9mIGNoaWxkIGl0ZW1zIHRoZSBwYXJlbnQgaXRlbSB3YXMgYXNzZW1ibGVkIGJ5IChvbmUgc3RydWN0dXJhbCBsZXZlbCBkb3duKS4iLA0KICAgICAgICAidHlwZSIgOiAiYXJyYXkiLA0KICAgICAgICAiaXRlbXMiIDogew0KICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF9ib21fYXNfYnVpbHRfMy4wLjBfQ2hpbGREYXRhIg0KICAgICAgICB9LA0KICAgICAgICAidW5pcXVlSXRlbXMiIDogdHJ1ZQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgInByb3BlcnRpZXMiIDogew0KICAgICJjYXRlbmFYSWQiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgQ2F0ZW5hLVggSUQgb2YgdGhlIGdpdmVuIHBhcnQgKGUuZy4gdGhlIGNvbXBvbmVudCksIHZhbGlkIGZvciB0aGUgQ2F0ZW5hLVggZGF0YXNwYWNlLiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQudXVpZF8yLjAuMF9VdWlkVjRUcmFpdCINCiAgICB9LA0KICAgICJjaGlsZEl0ZW1zIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiU2V0IG9mIGNoaWxkIGl0ZW1zLCBvZiB3aGljaCB0aGUgZ2l2ZW4gcGFyZW50IGl0ZW0gd2FzIGFzc2VtYmxlZCBieSAob25lIHN0cnVjdHVyYWwgbGV2ZWwgZG93bikuIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF9ib21fYXNfYnVpbHRfMy4wLjBfU2V0T2ZDaGlsZEl0ZW1zQ2hhcmFjdGVyaXN0aWMiDQogICAgfQ0KICB9LA0KICAicmVxdWlyZWQiIDogWyAiY2F0ZW5hWElkIiwgImNoaWxkSXRlbXMiIF0NCn0= + # urn:samm:io.catenax.batch:3.0.0#Batch + dXJuOnNhbW06aW8uY2F0ZW5heC5iYXRjaDozLjAuMCNCYXRjaA: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIkEgYmF0Y2ggaXMgYSBxdWFudGl0eSBvZihzZW1pLSlmaW5pc2hlZCBwcm9kdWN0cyBvcihyYXcpbWF0ZXJpYWwgcHJvZHVjdCB0aGF0IGhhdmUgYmVlbiBwcm9kdWNlZCB1bmRlciB0aGUgc2FtZSBjaXJjdW1zdGFuY2VzKGUuZy4gc2FtZSBwcm9kdWN0aW9uIGxvY2F0aW9uKSwgYXMgc3BlY2lmaWVkIGdyb3VwcyBvciBhbW91bnRzLCB3aXRoaW4gYSBjZXJ0YWluIHRpbWUgZnJhbWUuIEV2ZXJ5IGJhdGNoIGNhbiBkaWZmZXIgaW4gdGhlIG51bWJlciBvciBhbW91bnQgb2YgcHJvZHVjdHMuIERpZmZlcmVudCBiYXRjaGVzIGNhbiBoYXZlIHZhcmllZCBzcGVjaWZpY2F0aW9ucywgZS5nLiwgZGlmZmVyZW50IGNvbG9ycy4gQSBiYXRjaCBpcyBpZGVudGlmaWVkIHZpYSBhIEJhdGNoIElELiIsDQogICJ0eXBlIiA6ICJvYmplY3QiLA0KICAiY29tcG9uZW50cyIgOiB7DQogICAgInNjaGVtYXMiIDogew0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnV1aWRfMi4wLjBfVXVpZFY0VHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcHJvdmlkZWQgcmVndWxhciBleHByZXNzaW9uIGVuc3VyZXMgdGhhdCB0aGUgVVVJRCBpcyBjb21wb3NlZCBvZiBmaXZlIGdyb3VwcyBvZiBjaGFyYWN0ZXJzIHNlcGFyYXRlZCBieSBoeXBoZW5zLCBpbiB0aGUgZm9ybSA4LTQtNC00LTEyIGZvciBhIHRvdGFsIG9mIDM2IGNoYXJhY3RlcnMgKDMyIGhleGFkZWNpbWFsIGNoYXJhY3RlcnMgYW5kIDQgaHlwaGVucyksIG9wdGlvbmFsbHkgcHJlZml4ZWQgYnkgXCJ1cm46dXVpZDpcIiB0byBtYWtlIGl0IGFuIElSSS4iLA0KICAgICAgICAicGF0dGVybiIgOiAiKF5bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kKXwoXnVybjp1dWlkOlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQpIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzMuMC4wX0tleVRyYWl0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ29uc3RyYWludCB0aGF0IGVuc3VyZXMgdGhhdCB0aGUgcHJlZGVmaW5lZCBrZXlzIGFyZSB1c2VkLiIsDQogICAgICAgICJwYXR0ZXJuIiA6ICJeKG1hbnVmYWN0dXJlcklkfGJhdGNoSWR8Y3VzdG9tS2V5OlxcdyspJCINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5iYXRjaF8zLjAuMF9WYWx1ZUNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHZhbHVlIG9mIGFuIGlkZW50aWZpZXIuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzMuMC4wX0tleVZhbHVlTGlzdCIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBsaXN0IG9mIGtleSB2YWx1ZSBwYWlycyBmb3IgbG9jYWwgaWRlbnRpZmllcnMsIHdoaWNoIGFyZSBjb21wb3NlZCBvZiBhIGtleSBhbmQgYSBjb3JyZXNwb25kaW5nIHZhbHVlLiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImtleSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBrZXkgb2YgYSBsb2NhbCBpZGVudGlmaWVyLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5iYXRjaF8zLjAuMF9LZXlUcmFpdCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJ2YWx1ZSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSB2YWx1ZSBvZiBhbiBpZGVudGlmaWVyLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5iYXRjaF8zLjAuMF9WYWx1ZUNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgImtleSIsICJ2YWx1ZSIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzMuMC4wX0xvY2FsSWRlbnRpZmllckNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBIGJhdGNoIG1heSBoYXZlIG11bHRpcGxlIGF0dHJpYnV0ZXMsIHdoaWNoIHVuaXF1ZWx5IGlkZW50aWZ5IHRoYXQgYmF0Y2ggaW4gYSBzcGVjaWZpYyBkYXRhc3BhY2UoZS5nLiB0aGUgbWFudWZhY3R1cmVyYHMgZGF0YXNwYWNlKSIsDQogICAgICAgICJ0eXBlIiA6ICJhcnJheSIsDQogICAgICAgICJpdGVtcyIgOiB7DQogICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguYmF0Y2hfMy4wLjBfS2V5VmFsdWVMaXN0Ig0KICAgICAgICB9LA0KICAgICAgICAidW5pcXVlSXRlbXMiIDogdHJ1ZQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzMuMC4wX0RhdGVUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlJlZ3VsYXIgRXhwcmVzc2lvbiB0byBlbmFibGUgVVRDIGFuZCBUaW1lem9uZSBmb3JtYXRzIGFuZCB0aGUgcG9zc2liaWxpdHkgdG8gZXhjbHVkZSB0aW1lIGluZm9ybWF0aW9uLiIsDQogICAgICAgICJwYXR0ZXJuIiA6ICJeKD86WzAtOV17NH0tWzAtOV17Mn0tWzAtOV17Mn1UWzAtOV17Mn06WzAtOV17Mn06WzAtOV17Mn0oPzpbLl1bMC05XSspP1p8WzAtOV17NH0tWzAtOV17Mn0tWzAtOV17Mn0oPzpUWzAtOV17Mn06WzAtOV17Mn06WzAtOV17Mn0oPzpbLl1bMC05XSspPyg/Olp8WystXVswLTldezJ9OlswLTldezJ9KSk/KSQiDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguYmF0Y2hfMy4wLjBfUHJvZHVjdGlvbkNvdW50cnlDb2RlVHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJSZWd1bGFyIEV4cHJlc3Npb24gdGhhdCBlbnN1cmVzIGEgdGhyZWUtbGV0dGVyIGNvZGUiLA0KICAgICAgICAicGF0dGVybiIgOiAiXltBLVpdezN9JCINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQuYnVzaW5lc3NfcGFydG5lcl9udW1iZXJfMi4wLjBfQnBuc1RyYWl0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHByb3ZpZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbiBlbnN1cmVzIHRoYXQgdGhlIEJQTlMgaXMgY29tcG9zZWQgb2YgcHJlZml4ICdCUE5TJywgMTAgZGlnaXRzIGFuZCB0d28gYWxwaGFudW1lcmljIGxldHRlcnMuIiwNCiAgICAgICAgInBhdHRlcm4iIDogIl5CUE5TW2EtekEtWjAtOV17MTJ9JCINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQucGFydF9zaXRlX2luZm9ybWF0aW9uX2FzX2J1aWx0XzIuMC4wX0Z1bmN0aW9uQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEZXNjcmliZXMgdGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgZnVuY3Rpb24gZm9yIGEgc2l0ZSByZWxhdGVkIHRvIHRoZSByZXNwZWN0aXZlIHBhcnQuIiwNCiAgICAgICAgImVudW0iIDogWyAicHJvZHVjdGlvbiIsICJ3YXJlaG91c2UiLCAic3BhcmUgcGFydCB3YXJlaG91c2UiIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQucGFydF9zaXRlX2luZm9ybWF0aW9uX2FzX2J1aWx0XzIuMC4wX1NpdGVzRW50aXR5IiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEZXNjcmliZXMgdGhlIElEIGFuZCBmdW5jdGlvbiBvZiBhIHNpdGUgZm9yIHRoZSBhc3NvY2lhdGVkIHBhcnQgaW4gdGhlIEFzQnVpbHQgY29udGV4dChlLmcuIFNlcmlhbFBhcnQsIEJhdGNoLCBqSVMpLiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImNhdGVuYVhzaXRlSWQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgaWRlbnRpZmllciBvZiB0aGUgc2l0ZSBhY2NvcmRpbmcgdG8gQ2F0ZW5hLVggQlBETS4gVGhlIGNhdGVuYVhzaXRlSWQgbXVzdCBiZSBhIHZhbGlkIENhdGVuYS1YIEJQTi4gVGhlIEJQTiBpcyBhIHVuaXF1ZSwgdW5jaGFuZ2VhYmxlIGlkZW50aWZpZXIgZm9yIEJ1c2luZXNzIFBhcnRuZXJzIC8gY29tcGFueSBsb2NhdGlvbnMgZnJvbSBmb3VuZGF0aW9uIHRvIGNsb3N1cmUsIHJlZ2FyZGxlc3Mgb2YgdGhlIGRpZmZlcmVudCBidXNpbmVzcyByZWxhdGlvbnNoaXBzIC8gc3RydWN0dXJlcyBiZXR3ZWVuIG9yIHdpdGhpbiB0aGUgQnVzaW5lc3MgUGFydG5lcnMgb3IgY29tcGFueSBsb2NhdGlvbnMuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5idXNpbmVzc19wYXJ0bmVyX251bWJlcl8yLjAuMF9CcG5zVHJhaXQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiZnVuY3Rpb24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgZnVuY3Rpb24gb2YgdGhlIHNpdGUgaW4gcmVsYXRpb24gdG8gdGhlIHBhcnQoaS5lLiB0aGUgYWN0aXZpdHkgd2l0aGluIHRoZSB2YWx1ZSBjaGFpbiBvZiB0aGUgcGFydCB0aGF0IGlzIHBlcmZvcm1lZCBhdCB0aGUgc2l0ZSkiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8yLjAuMF9GdW5jdGlvbkNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgImNhdGVuYVhzaXRlSWQiLCAiZnVuY3Rpb24iIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQucGFydF9zaXRlX2luZm9ybWF0aW9uX2FzX2J1aWx0XzIuMC4wX1NpdGVzQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlNpdGVzIENoYXJhY3RlcmlzdGljIiwNCiAgICAgICAgInR5cGUiIDogImFycmF5IiwNCiAgICAgICAgIml0ZW1zIiA6IHsNCiAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQucGFydF9zaXRlX2luZm9ybWF0aW9uX2FzX2J1aWx0XzIuMC4wX1NpdGVzRW50aXR5Ig0KICAgICAgICB9LA0KICAgICAgICAidW5pcXVlSXRlbXMiIDogdHJ1ZQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzMuMC4wX01hbnVmYWN0dXJpbmdDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ2hhcmFjdGVyaXN0aWMgdG8gZGVzY3JpYmUgbWFudWZhY3R1cmluZyByZWxhdGVkIGRhdGEiLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJkYXRlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGltZXN0YW1wIG9mIHRoZSBtYW51ZmFjdHVyaW5nIGRhdGUgYXMgdGhlIGZpbmFsIHN0ZXAgaW4gcHJvZHVjdGlvbiBwcm9jZXNzKGUuZy4gZmluYWwgcXVhbGl0eSBjaGVjaywgcmVhZHktZm9yLXNoaXBtZW50IGV2ZW50KSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5iYXRjaF8zLjAuMF9EYXRlVHJhaXQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY291bnRyeSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNvdW50cnkgY29kZSB3aGVyZSB0aGUgcGFydCB3YXMgbWFudWZhY3R1cmVkIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzMuMC4wX1Byb2R1Y3Rpb25Db3VudHJ5Q29kZVRyYWl0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgInNpdGVzIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBzaXRlIGlzIGEgZGVsaW1pdGVkIGdlb2dyYXBoaWNhbCBhcmVhIHdoZXJlIGEgbGVnYWwgZW50aXR5IGRvZXMgYnVzaW5lc3MoZ2VvZ3JhcGhpY2FsIGFkZHJlc3Mgd2l0aCBnZW8gY29vcmRpbmF0ZXMpLkEgc2l0ZSBhbHdheXMgaGFzIGEgcHJpbWFyeSBwaHlzaWNhbCBhZGRyZXNzLiBJdCBpcyBwb3NzaWJsZSB0aGF0IGZ1cnRoZXIgcGh5c2ljYWwgYWRkcmVzc2VzIGFyZSBzcGVjaWZpZWQgZm9yIHRoZSBzaXRlLiBQLk8uIGJveCBkZXRhaWxzIGFyZSBvbmx5IHBvc3NpYmxlIGluIGFkZGl0aW9uIHRvIHRoZSBwaHlzaWNhbCBhZGRyZXNzLiBBIHNpdGUgaGFzIGEgMTpuIHJlbGF0aW9uIHRvIGFkZHJlc3NlcywgbWVhbnMgYXQgbGVhc3QgMSBhZGRyZXNzIGlzIG5lY2Vzc2FyeSBhbmQgbXVsdGlwbGUgYWRkcmVzc2VzIGFyZSBwb3NzaWJsZS4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8yLjAuMF9TaXRlc0NoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgImRhdGUiIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5iYXRjaF8zLjAuMF9QYXJ0SWRDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwYXJ0IElEIGlzIGEgbXVsdGktY2hhcmFjdGVyIHN0cmluZywgdXN1YWxseSBhc3NpZ25lZCBieSBhbiBFUlAgc3lzdGVtIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzMuMC4wX1BhcnROYW1lQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJQYXJ0IE5hbWUgaW4gc3RyaW5nIGZvcm1hdCBmcm9tIHRoZSByZXNwZWN0aXZlIHN5c3RlbSBpbiB0aGUgdmFsdWUgY2hhaW4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfY2xhc3NpZmljYXRpb25fMS4wLjBfQ2xhc3NpZmljYXRpb25TdGFuZGFyZENoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiSWRlbnRpZmllZCBjbGFzc2lmaWNhdGlvbiBzdGFuZGFyZHMgdGhhdCBhbGlnbiB0byB0aGUgQ2F0ZW5hLVggbmVlZHMuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X2NsYXNzaWZpY2F0aW9uXzEuMC4wX0NsYXNzaWZpY2F0aW9uSURDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkl0IGNhbiBiZSBudW1lcmljIG9yIGEgc3RyaW5nLCBkZXBlbmRpbmcgb24gdGhlIGNob3NlbiBjbGFzc2lmaWNhdGlvbiBzdGFuZGFyZC4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGVzY3JpYmVzIGEgUHJvcGVydHkgd2hpY2ggY29udGFpbnMgcGxhaW4gdGV4dC4gVGhpcyBpcyBpbnRlbmRlZCBleGNsdXNpdmVseSBmb3IgaHVtYW4gcmVhZGFibGUgc3RyaW5ncywgbm90IGZvciBpZGVudGlmaWVycywgbWVhc3VyZW1lbnQgdmFsdWVzLCBldGMuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X2NsYXNzaWZpY2F0aW9uXzEuMC4wX0NsYXNzaWZpY2F0aW9uRW50aXR5IiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJFbmNhcHN1bGF0ZXMgZGF0YSByZWxhdGVkIHRvIHRoZSBjbGFzc2lmaWNhdGlvbiBvZiB0aGUgcGFydC4iLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJjbGFzc2lmaWNhdGlvblN0YW5kYXJkIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiSWRlbnRpZmllZCBjbGFzc2lmaWNhdGlvbiBzdGFuZGFyZHMgdGhhdCBhbGlnbiB0byB0aGUgQ2F0ZW5hLVggbmVlZHMuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X2NsYXNzaWZpY2F0aW9uXzEuMC4wX0NsYXNzaWZpY2F0aW9uU3RhbmRhcmRDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjbGFzc2lmaWNhdGlvbklEIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGNsYXNzaWZpY2F0aW9uIElEIG9mIHRoZSBwYXJ0IHR5cGUgYWNjb3JkaW5nIHRvIHRoZSBjb3JyZXNwb25kaW5nIHN0YW5kYXJkIGRlZmluaXRpb24gbWVudGlvbmVkIGluIHRoZSBrZXkgdmFsdWUgcGFpci4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfY2xhc3NpZmljYXRpb25fMS4wLjBfQ2xhc3NpZmljYXRpb25JRENoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgImNsYXNzaWZpY2F0aW9uRGVzY3JpcHRpb24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJPcHRpb25hbCBwcm9wZXJ0eSBkZXNjcmliaW5nIHRoZSBjbGFzc2lmaWNhdGlvbiBzdGFuZGFyZC4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0Ig0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgImNsYXNzaWZpY2F0aW9uU3RhbmRhcmQiLCAiY2xhc3NpZmljYXRpb25JRCIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X2NsYXNzaWZpY2F0aW9uXzEuMC4wX0NsYXNzaWZpY2F0aW9uQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNsYXNzaWZpY2F0aW9uIGNoYXJhY3RlcmlzdGljIGVuYWJsaW5nIGEgc2V0IG9mIGZ1cnRoZXIgcHJvcGVydGllcy4iLA0KICAgICAgICAidHlwZSIgOiAiYXJyYXkiLA0KICAgICAgICAiaXRlbXMiIDogew0KICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X2NsYXNzaWZpY2F0aW9uXzEuMC4wX0NsYXNzaWZpY2F0aW9uRW50aXR5Ig0KICAgICAgICB9LA0KICAgICAgICAidW5pcXVlSXRlbXMiIDogdHJ1ZQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzMuMC4wX1BhcnRUeXBlSW5mb3JtYXRpb25DaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgcGFydCB0eXBlIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAibWFudWZhY3R1cmVyUGFydElkIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUGFydCBJRCBhcyBhc3NpZ25lZCBieSB0aGUgbWFudWZhY3R1cmVyIG9mIHRoZSBwYXJ0LiBUaGUgUGFydCBJRCBpZGVudGlmaWVzIHRoZSBwYXJ0KGFzIGRlc2lnbmVkKWluIHRoZSBtYW51ZmFjdHVyZXJgcyBkYXRhc3BhY2UuIFRoZSBQYXJ0IElEIGRvZXMgbm90IHJlZmVyZW5jZSBhIHNwZWNpZmljIGluc3RhbmNlIG9mIGEgcGFydCBhbmQgdGh1cyBzaG91bGQgbm90IGJlIGNvbmZ1c2VkIHdpdGggdGhlIHNlcmlhbCBudW1iZXIgb3IgYmF0Y2ggbnVtYmVyLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5iYXRjaF8zLjAuMF9QYXJ0SWRDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJuYW1lQXRNYW51ZmFjdHVyZXIiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJOYW1lIG9mIHRoZSBwYXJ0IGFzIGFzc2lnbmVkIGJ5IHRoZSBtYW51ZmFjdHVyZXIiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguYmF0Y2hfMy4wLjBfUGFydE5hbWVDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJwYXJ0Q2xhc3NpZmljYXRpb24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJQcm9wZXJ0eSBkZXNjcmliaW5nIHRoZSBjbGFzc2lmaWNhdGlvbiBvZiBhIHBhcnQuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X2NsYXNzaWZpY2F0aW9uXzEuMC4wX0NsYXNzaWZpY2F0aW9uQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicmVxdWlyZWQiIDogWyAibWFudWZhY3R1cmVyUGFydElkIiwgIm5hbWVBdE1hbnVmYWN0dXJlciIgXQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgInByb3BlcnRpZXMiIDogew0KICAgICJjYXRlbmFYSWQiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgZnVsbHkgYW5vbnltb3VzIENhdGVuYS1YIElEIG9mIHRoZSBiYXRjaCwgdmFsaWQgZm9yIHRoZSBDYXRlbmEtWCBkYXRhc3BhY2UuIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC51dWlkXzIuMC4wX1V1aWRWNFRyYWl0Ig0KICAgIH0sDQogICAgImxvY2FsSWRlbnRpZmllcnMiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJBIGxvY2FsIGlkZW50aWZpZXIgZW5hYmxlcyBpZGVudGlmaWNhdGlvbiBvZiBhIHBhcnQgaW4gYSBzcGVjaWZpYyBkYXRhc3BhY2UsIGJ1dCBpcyBub3QgdW5pcXVlIGluIENhdGVuYS1YIGRhdGFzcGFjZS4gTXVsdGlwbGUgbG9jYWwgaWRlbnRpZmllcnMgbWF5IGV4aXN0LiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5iYXRjaF8zLjAuMF9Mb2NhbElkZW50aWZpZXJDaGFyYWN0ZXJpc3RpYyINCiAgICB9LA0KICAgICJtYW51ZmFjdHVyaW5nSW5mb3JtYXRpb24iIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJJbmZvcm1hdGlvbiBmcm9tIG1hbnVmYWN0dXJpbmcgcHJvY2Vzcywgc3VjaCBhcyBtYW51ZmFjdHVyaW5nIGRhdGUgYW5kIG1hbnVmYWN0dXJpbmcgY291bnRyeSIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5iYXRjaF8zLjAuMF9NYW51ZmFjdHVyaW5nQ2hhcmFjdGVyaXN0aWMiDQogICAgfSwNCiAgICAicGFydFR5cGVJbmZvcm1hdGlvbiIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwYXJ0IHR5cGUgb2Ygd2hpY2ggdGhlIGJhdGNoIGhhcyBiZWVuIGluc3RhbnRpYXRlZCBvZi4iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguYmF0Y2hfMy4wLjBfUGFydFR5cGVJbmZvcm1hdGlvbkNoYXJhY3RlcmlzdGljIg0KICAgIH0NCiAgfSwNCiAgInJlcXVpcmVkIiA6IFsgImNhdGVuYVhJZCIsICJsb2NhbElkZW50aWZpZXJzIiwgIm1hbnVmYWN0dXJpbmdJbmZvcm1hdGlvbiIsICJwYXJ0VHlwZUluZm9ybWF0aW9uIiBdDQp9 + # urn:samm:io.catenax.just_in_sequence_part:3.0.0#JustInSequencePart + dXJuOnNhbW06aW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnQ6My4wLjAjSnVzdEluU2VxdWVuY2VQYXJ0: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIkEganVzdC1pbi1zZXF1ZW5jZSBwYXJ0IGlzIGFuIGluc3RhbnRpYXRpb24gb2YgYSAoZGVzaWduLSlwYXJ0LCB3aGVyZSB0aGUgcGFydGljdWxhciBpbnN0YW50aWF0aW9uIGNhbiBiZSB1bmlxdWVseSBpZGVudGlmaWVkIGJ5IG1lYW5zIG9mIGEgY29tYmluYXRpb24gb2Ygc2V2ZXJhbCBJRHMgcmVsYXRlZCB0byBhIGp1c3QtaW4tc2VxdWVuY2UgcHJvY2Vzcy4iLA0KICAidHlwZSIgOiAib2JqZWN0IiwNCiAgImNvbXBvbmVudHMiIDogew0KICAgICJzY2hlbWFzIiA6IHsNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC51dWlkXzIuMC4wX1V1aWRWNFRyYWl0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHByb3ZpZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbiBlbnN1cmVzIHRoYXQgdGhlIFVVSUQgaXMgY29tcG9zZWQgb2YgZml2ZSBncm91cHMgb2YgY2hhcmFjdGVycyBzZXBhcmF0ZWQgYnkgaHlwaGVucywgaW4gdGhlIGZvcm0gOC00LTQtNC0xMiBmb3IgYSB0b3RhbCBvZiAzNiBjaGFyYWN0ZXJzICgzMiBoZXhhZGVjaW1hbCBjaGFyYWN0ZXJzIGFuZCA0IGh5cGhlbnMpLCBvcHRpb25hbGx5IHByZWZpeGVkIGJ5IFwidXJuOnV1aWQ6XCIgdG8gbWFrZSBpdCBhbiBJUkkuIiwNCiAgICAgICAgInBhdHRlcm4iIDogIiheWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCl8KF51cm46dXVpZDpbMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kKSINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMy4wLjBfS2V5VHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDb25zdHJhaW50IHRoYXQgZW5zdXJlcyB0aGF0IHRoZSBwcmVkZWZpbmVkIGtleXMgYXJlIHVzZWQuIiwNCiAgICAgICAgInBhdHRlcm4iIDogIl4obWFudWZhY3R1cmVySWR8amlzTnVtYmVyfGppc0NhbGxEYXRlfHBhcmVudE9yZGVyTnVtYmVyfGN1c3RvbUtleTpcXHcrKSQiDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguanVzdF9pbl9zZXF1ZW5jZV9wYXJ0XzMuMC4wX1ZhbHVlQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgdmFsdWUgb2YgYW4gaWRlbnRpZmllci4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguanVzdF9pbl9zZXF1ZW5jZV9wYXJ0XzMuMC4wX0tleVZhbHVlTGlzdCIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBsaXN0IG9mIGtleSB2YWx1ZSBwYWlycyBmb3IgbG9jYWwgaWRlbnRpZmllcnMsIHdoaWNoIGFyZSBjb21wb3NlZCBvZiBhIGtleSBhbmQgYSBjb3JyZXNwb25kaW5nIHZhbHVlLiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImtleSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBrZXkgb2YgYSBsb2NhbCBpZGVudGlmaWVyLiAiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguanVzdF9pbl9zZXF1ZW5jZV9wYXJ0XzMuMC4wX0tleVRyYWl0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgInZhbHVlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHZhbHVlIG9mIGFuIGlkZW50aWZpZXIuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4Lmp1c3RfaW5fc2VxdWVuY2VfcGFydF8zLjAuMF9WYWx1ZUNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgImtleSIsICJ2YWx1ZSIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4Lmp1c3RfaW5fc2VxdWVuY2VfcGFydF8zLjAuMF9Mb2NhbElkZW50aWZpZXJDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBzaW5nbGUganVzdC1pbi1zZXF1ZW5jZSBwYXJ0IG1heSBoYXZlIG11bHRpcGxlIGF0dHJpYnV0ZXMsIHRoYXQgdW5pcXVlbHkgaWRlbnRpZnkgYSB0aGF0IHBhcnQgaW4gYSBzcGVjaWZpYyBkYXRhc3BhY2UgKGUuZy4gdGhlIG1hbnVmYWN0dXJlcmBzIGRhdGFzcGFjZSkiLA0KICAgICAgICAidHlwZSIgOiAiYXJyYXkiLA0KICAgICAgICAiaXRlbXMiIDogew0KICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4Lmp1c3RfaW5fc2VxdWVuY2VfcGFydF8zLjAuMF9LZXlWYWx1ZUxpc3QiDQogICAgICAgIH0sDQogICAgICAgICJ1bmlxdWVJdGVtcyIgOiB0cnVlDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguanVzdF9pbl9zZXF1ZW5jZV9wYXJ0XzMuMC4wX0RhdGVUaW1lVHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJSZWd1bGFyIEV4cHJlc3Npb24gdG8gZW5hYmxlIFVUQyBhbmQgVGltZXpvbmUgZm9ybWF0cyBhbmQgdGhlIHBvc3NpYmlsaXR5IHRvIGV4Y2x1ZGUgdGltZSBpbmZvcm1hdGlvbi4iLA0KICAgICAgICAicGF0dGVybiIgOiAiXig/OlswLTldezR9LVswLTldezJ9LVswLTldezJ9VFswLTldezJ9OlswLTldezJ9OlswLTldezJ9KD86Wy5dWzAtOV0rKT9afFswLTldezR9LVswLTldezJ9LVswLTldezJ9KD86VFswLTldezJ9OlswLTldezJ9OlswLTldezJ9KD86Wy5dWzAtOV0rKT8oPzpafFsrLV1bMC05XXsyfTpbMC05XXsyfSkpPykkIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4Lmp1c3RfaW5fc2VxdWVuY2VfcGFydF8zLjAuMF9Qcm9kdWN0aW9uQ291bnRyeUNvZGVUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlJlZ3VsYXIgRXhwcmVzc2lvbiB0aGF0IGVuc3VyZXMgYSB0aHJlZS1sZXR0ZXIgY29kZSAiLA0KICAgICAgICAicGF0dGVybiIgOiAiXltBLVpdW0EtWl1bQS1aXSQiDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLmJ1c2luZXNzX3BhcnRuZXJfbnVtYmVyXzIuMC4wX0JwbnNUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwcm92aWRlZCByZWd1bGFyIGV4cHJlc3Npb24gZW5zdXJlcyB0aGF0IHRoZSBCUE5TIGlzIGNvbXBvc2VkIG9mIHByZWZpeCAnQlBOUycsIDEwIGRpZ2l0cyBhbmQgdHdvIGFscGhhbnVtZXJpYyBsZXR0ZXJzLiIsDQogICAgICAgICJwYXR0ZXJuIiA6ICJeQlBOU1thLXpBLVowLTldezEyfSQiDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8yLjAuMF9GdW5jdGlvbkNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGVzY3JpYmVzIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIGZ1bmN0aW9uIGZvciBhIHNpdGUgcmVsYXRlZCB0byB0aGUgcmVzcGVjdGl2ZSBwYXJ0LiIsDQogICAgICAgICJlbnVtIiA6IFsgInByb2R1Y3Rpb24iLCAid2FyZWhvdXNlIiwgInNwYXJlIHBhcnQgd2FyZWhvdXNlIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8yLjAuMF9TaXRlc0VudGl0eSIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGVzY3JpYmVzIHRoZSBJRCBhbmQgZnVuY3Rpb24gb2YgYSBzaXRlIGZvciB0aGUgYXNzb2NpYXRlZCBwYXJ0IGluIHRoZSBBc0J1aWx0IGNvbnRleHQoZS5nLiBTZXJpYWxQYXJ0LCBCYXRjaCwgaklTKS4iLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJjYXRlbmFYc2l0ZUlkIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGlkZW50aWZpZXIgb2YgdGhlIHNpdGUgYWNjb3JkaW5nIHRvIENhdGVuYS1YIEJQRE0uIFRoZSBjYXRlbmFYc2l0ZUlkIG11c3QgYmUgYSB2YWxpZCBDYXRlbmEtWCBCUE4uIFRoZSBCUE4gaXMgYSB1bmlxdWUsIHVuY2hhbmdlYWJsZSBpZGVudGlmaWVyIGZvciBCdXNpbmVzcyBQYXJ0bmVycyAvIGNvbXBhbnkgbG9jYXRpb25zIGZyb20gZm91bmRhdGlvbiB0byBjbG9zdXJlLCByZWdhcmRsZXNzIG9mIHRoZSBkaWZmZXJlbnQgYnVzaW5lc3MgcmVsYXRpb25zaGlwcyAvIHN0cnVjdHVyZXMgYmV0d2VlbiBvciB3aXRoaW4gdGhlIEJ1c2luZXNzIFBhcnRuZXJzIG9yIGNvbXBhbnkgbG9jYXRpb25zLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQuYnVzaW5lc3NfcGFydG5lcl9udW1iZXJfMi4wLjBfQnBuc1RyYWl0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImZ1bmN0aW9uIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGZ1bmN0aW9uIG9mIHRoZSBzaXRlIGluIHJlbGF0aW9uIHRvIHRoZSBwYXJ0KGkuZS4gdGhlIGFjdGl2aXR5IHdpdGhpbiB0aGUgdmFsdWUgY2hhaW4gb2YgdGhlIHBhcnQgdGhhdCBpcyBwZXJmb3JtZWQgYXQgdGhlIHNpdGUpIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X3NpdGVfaW5mb3JtYXRpb25fYXNfYnVpbHRfMi4wLjBfRnVuY3Rpb25DaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJjYXRlbmFYc2l0ZUlkIiwgImZ1bmN0aW9uIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8yLjAuMF9TaXRlc0NoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJTaXRlcyBDaGFyYWN0ZXJpc3RpYyIsDQogICAgICAgICJ0eXBlIiA6ICJhcnJheSIsDQogICAgICAgICJpdGVtcyIgOiB7DQogICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8yLjAuMF9TaXRlc0VudGl0eSINCiAgICAgICAgfSwNCiAgICAgICAgInVuaXF1ZUl0ZW1zIiA6IHRydWUNCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMy4wLjBfTWFudWZhY3R1cmluZ0NoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyB0byBkZXNjcmliZSBtYW51ZmFjdHVyaW5nIHJlbGF0ZWQgZGF0YSIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImRhdGUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaW1lc3RhbXAgb2YgdGhlIG1hbnVmYWN0dXJpbmcgZGF0ZSBhcyB0aGUgZmluYWwgc3RlcCBpbiBwcm9kdWN0aW9uIHByb2Nlc3MgKGUuZy4gZmluYWwgcXVhbGl0eSBjaGVjaywgcmVhZHktZm9yLXNoaXBtZW50IGV2ZW50KSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMy4wLjBfRGF0ZVRpbWVUcmFpdCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjb3VudHJ5IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ291bnRyeSBjb2RlIHdoZXJlIHRoZSBwYXJ0IHdhcyBtYW51ZmFjdHVyZWQiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguanVzdF9pbl9zZXF1ZW5jZV9wYXJ0XzMuMC4wX1Byb2R1Y3Rpb25Db3VudHJ5Q29kZVRyYWl0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgInNpdGVzIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBzaXRlIGlzIGEgZGVsaW1pdGVkIGdlb2dyYXBoaWNhbCBhcmVhIHdoZXJlIGEgbGVnYWwgZW50aXR5IGRvZXMgYnVzaW5lc3MoZ2VvZ3JhcGhpY2FsIGFkZHJlc3Mgd2l0aCBnZW8gY29vcmRpbmF0ZXMpLkEgc2l0ZSBhbHdheXMgaGFzIGEgcHJpbWFyeSBwaHlzaWNhbCBhZGRyZXNzLiBJdCBpcyBwb3NzaWJsZSB0aGF0IGZ1cnRoZXIgcGh5c2ljYWwgYWRkcmVzc2VzIGFyZSBzcGVjaWZpZWQgZm9yIHRoZSBzaXRlLiBQLk8uIGJveCBkZXRhaWxzIGFyZSBvbmx5IHBvc3NpYmxlIGluIGFkZGl0aW9uIHRvIHRoZSBwaHlzaWNhbCBhZGRyZXNzLiBBIHNpdGUgaGFzIGEgMTpuIHJlbGF0aW9uIHRvIGFkZHJlc3NlcywgbWVhbnMgYXQgbGVhc3QgMSBhZGRyZXNzIGlzIG5lY2Vzc2FyeSBhbmQgbXVsdGlwbGUgYWRkcmVzc2VzIGFyZSBwb3NzaWJsZS4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8yLjAuMF9TaXRlc0NoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgImRhdGUiIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMy4wLjBfUGFydElkQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcGFydCBJRCBpcyBhIG11bHRpLWNoYXJhY3RlciBzdHJpbmcsIHVzdWFsbHkgYXNzaWduZWQgYnkgYW4gRVJQIHN5c3RlbS4gQWx0ZXJuYXRpdmVseSB0aGUgSUQgb2YgdGhlIHBhcnQgZmFtaWx5IGNhbiBiZSB1c2VkIGlmIG5vIHNwZWNpZmljIHBhcnQgSUQgZXhpc3RzLiINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMy4wLjBfUGFydE5hbWVDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlBhcnQgTmFtZSBpbiBzdHJpbmcgZm9ybWF0IGZyb20gdGhlIHJlc3BlY3RpdmUgc3lzdGVtIGluIHRoZSB2YWx1ZSBjaGFpbiINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQucGFydF9jbGFzc2lmaWNhdGlvbl8xLjAuMF9DbGFzc2lmaWNhdGlvblN0YW5kYXJkQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJJZGVudGlmaWVkIGNsYXNzaWZpY2F0aW9uIHN0YW5kYXJkcyB0aGF0IGFsaWduIHRvIHRoZSBDYXRlbmEtWCBuZWVkcy4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfY2xhc3NpZmljYXRpb25fMS4wLjBfQ2xhc3NpZmljYXRpb25JRENoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiSXQgY2FuIGJlIG51bWVyaWMgb3IgYSBzdHJpbmcsIGRlcGVuZGluZyBvbiB0aGUgY2hvc2VuIGNsYXNzaWZpY2F0aW9uIHN0YW5kYXJkLiINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RleHQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEZXNjcmliZXMgYSBQcm9wZXJ0eSB3aGljaCBjb250YWlucyBwbGFpbiB0ZXh0LiBUaGlzIGlzIGludGVuZGVkIGV4Y2x1c2l2ZWx5IGZvciBodW1hbiByZWFkYWJsZSBzdHJpbmdzLCBub3QgZm9yIGlkZW50aWZpZXJzLCBtZWFzdXJlbWVudCB2YWx1ZXMsIGV0Yy4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfY2xhc3NpZmljYXRpb25fMS4wLjBfQ2xhc3NpZmljYXRpb25FbnRpdHkiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkVuY2Fwc3VsYXRlcyBkYXRhIHJlbGF0ZWQgdG8gdGhlIGNsYXNzaWZpY2F0aW9uIG9mIHRoZSBwYXJ0LiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImNsYXNzaWZpY2F0aW9uU3RhbmRhcmQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJJZGVudGlmaWVkIGNsYXNzaWZpY2F0aW9uIHN0YW5kYXJkcyB0aGF0IGFsaWduIHRvIHRoZSBDYXRlbmEtWCBuZWVkcy4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfY2xhc3NpZmljYXRpb25fMS4wLjBfQ2xhc3NpZmljYXRpb25TdGFuZGFyZENoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgImNsYXNzaWZpY2F0aW9uSUQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgY2xhc3NpZmljYXRpb24gSUQgb2YgdGhlIHBhcnQgdHlwZSBhY2NvcmRpbmcgdG8gdGhlIGNvcnJlc3BvbmRpbmcgc3RhbmRhcmQgZGVmaW5pdGlvbiBtZW50aW9uZWQgaW4gdGhlIGtleSB2YWx1ZSBwYWlyLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQucGFydF9jbGFzc2lmaWNhdGlvbl8xLjAuMF9DbGFzc2lmaWNhdGlvbklEQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY2xhc3NpZmljYXRpb25EZXNjcmlwdGlvbiIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIk9wdGlvbmFsIHByb3BlcnR5IGRlc2NyaWJpbmcgdGhlIGNsYXNzaWZpY2F0aW9uIHN0YW5kYXJkLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RleHQiDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicmVxdWlyZWQiIDogWyAiY2xhc3NpZmljYXRpb25TdGFuZGFyZCIsICJjbGFzc2lmaWNhdGlvbklEIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfY2xhc3NpZmljYXRpb25fMS4wLjBfQ2xhc3NpZmljYXRpb25DaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ2xhc3NpZmljYXRpb24gY2hhcmFjdGVyaXN0aWMgZW5hYmxpbmcgYSBzZXQgb2YgZnVydGhlciBwcm9wZXJ0aWVzLiIsDQogICAgICAgICJ0eXBlIiA6ICJhcnJheSIsDQogICAgICAgICJpdGVtcyIgOiB7DQogICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfY2xhc3NpZmljYXRpb25fMS4wLjBfQ2xhc3NpZmljYXRpb25FbnRpdHkiDQogICAgICAgIH0sDQogICAgICAgICJ1bmlxdWVJdGVtcyIgOiB0cnVlDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguanVzdF9pbl9zZXF1ZW5jZV9wYXJ0XzMuMC4wX1BhcnRUeXBlSW5mb3JtYXRpb25DaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgcGFydCB0eXBlIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAibWFudWZhY3R1cmVyUGFydElkIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUGFydCBJRCBhcyBhc3NpZ25lZCBieSB0aGUgbWFudWZhY3R1cmVyIG9mIHRoZSBwYXJ0LiBUaGUgbWFudWZhY3R1cmVyIFBhcnQgSUQgaWRlbnRpZmllcyB0aGUgcGFydCAoYXMgZGVzaWduZWQpaW4gdGhlIG1hbnVmYWN0dXJlcmBzIGRhdGFzcGFjZS4gVGhlIFBhcnQgSUQgZG9lcyBub3QgcmVmZXJlbmNlIGEgc3BlY2lmaWMgaW5zdGFuY2Ugb2YgYSBwYXJ0IGFuZCB0aHVzIHNob3VsZCBub3QgYmUgY29uZnVzZWQgd2l0aCB0aGUgc2VyaWFsIG51bWJlciBvciBhbnkgb3RoZXIgaW5zdGFuY2UgSURzLiBcbklmIG5vIHNwZWNpZmljIHBhcnQgSUQgZXhpc3RzIGEgcGFydCBmYW1pbHkgSUQgbWF5IGJlIHN1YnN0aXR1dGVkIGZvciBpdC4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguanVzdF9pbl9zZXF1ZW5jZV9wYXJ0XzMuMC4wX1BhcnRJZENoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgImN1c3RvbWVyUGFydElkIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUGFydCBJRCBhcyBhc3NpZ25lZCBieSB0aGUgY3VzdG9tZXIgb2YgdGhlIHBhcnQuIFRoZSBjdXN0b21lciBQYXJ0IElEIGlkZW50aWZpZXMgdGhlIHBhcnQgKGFzIGRlc2lnbmVkKWluIHRoZSBjdXN0b21lcmBzIGRhdGFzcGFjZS4gVGhlIFBhcnQgSUQgZG9lcyBub3QgcmVmZXJlbmNlIGEgc3BlY2lmaWMgaW5zdGFuY2Ugb2YgYSBwYXJ0IGFuZCB0aHVzIHNob3VsZCBub3QgYmUgY29uZnVzZWQgd2l0aCB0aGUgc2VyaWFsIG51bWJlciBvciBhbnkgb3RoZXIgaW5zdGFuY2UgSURzLiBcbklmIG5vIHNwZWNpZmljIHBhcnQgSUQgZXhpc3RzIGEgcGFydCBmYW1pbHkgSUQgbWF5IGJlIHN1YnN0aXR1dGVkIGZvciBpdC5cbiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMy4wLjBfUGFydElkQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAibmFtZUF0TWFudWZhY3R1cmVyIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiTmFtZSBvZiB0aGUgcGFydCBhcyBhc3NpZ25lZCBieSB0aGUgbWFudWZhY3R1cmVyIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4Lmp1c3RfaW5fc2VxdWVuY2VfcGFydF8zLjAuMF9QYXJ0TmFtZUNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgIm5hbWVBdEN1c3RvbWVyIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiTmFtZSBvZiB0aGUgcGFydCBhcyBhc3NpZ25lZCBieSB0aGUgY3VzdG9tZXIiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguanVzdF9pbl9zZXF1ZW5jZV9wYXJ0XzMuMC4wX1BhcnROYW1lQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAicGFydENsYXNzaWZpY2F0aW9uIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUHJvcGVydHkgZGVzY3JpYmluZyB0aGUgY2xhc3NpZmljYXRpb24gb2YgYSBwYXJ0LiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQucGFydF9jbGFzc2lmaWNhdGlvbl8xLjAuMF9DbGFzc2lmaWNhdGlvbkNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgIm5hbWVBdE1hbnVmYWN0dXJlciIgXQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgInByb3BlcnRpZXMiIDogew0KICAgICJjYXRlbmFYSWQiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgZnVsbHkgYW5vbnltb3VzIENhdGVuYS1YIElEIG9mIHRoZSBqdXN0LWluLXNlcXVlbmNlIHBhcnQsIHZhbGlkIGZvciB0aGUgQ2F0ZW5hLVggZGF0YXNwYWNlLiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQudXVpZF8yLjAuMF9VdWlkVjRUcmFpdCINCiAgICB9LA0KICAgICJsb2NhbElkZW50aWZpZXJzIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBsb2NhbCBpZGVudGlmaWVyIGVuYWJsZXMgaWRlbnRpZmljYXRpb24gb2YgYSBwYXJ0IGluIGEgc3BlY2lmaWMgZGF0YXNwYWNlLCBidXQgaXMgbm90IHVuaXF1ZSBpbiBDYXRlbmEtWCBkYXRhc3BhY2UuIE11bHRpcGxlIGxvY2FsIGlkZW50aWZpZXJzIG1heSBleGlzdC4iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguanVzdF9pbl9zZXF1ZW5jZV9wYXJ0XzMuMC4wX0xvY2FsSWRlbnRpZmllckNoYXJhY3RlcmlzdGljIg0KICAgIH0sDQogICAgIm1hbnVmYWN0dXJpbmdJbmZvcm1hdGlvbiIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIkluZm9ybWF0aW9uIGZyb20gbWFudWZhY3R1cmluZyBwcm9jZXNzLCBzdWNoIGFzIG1hbnVmYWN0dXJpbmcgZGF0ZSBhbmQgbWFudWZhY3R1cmluZyBjb3VudHJ5IiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4Lmp1c3RfaW5fc2VxdWVuY2VfcGFydF8zLjAuMF9NYW51ZmFjdHVyaW5nQ2hhcmFjdGVyaXN0aWMiDQogICAgfSwNCiAgICAicGFydFR5cGVJbmZvcm1hdGlvbiIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwYXJ0IHR5cGUgb3IgcGFydCBmYW1pbHkgZnJvbSB3aGljaCB0aGUganVzdC1pbi1zZXF1ZW5jZSBwYXJ0IGhhcyBiZWVuIGluc3RhbnRpYXRlZC4iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguanVzdF9pbl9zZXF1ZW5jZV9wYXJ0XzMuMC4wX1BhcnRUeXBlSW5mb3JtYXRpb25DaGFyYWN0ZXJpc3RpYyINCiAgICB9DQogIH0sDQogICJyZXF1aXJlZCIgOiBbICJjYXRlbmFYSWQiLCAibG9jYWxJZGVudGlmaWVycyIsICJtYW51ZmFjdHVyaW5nSW5mb3JtYXRpb24iLCAicGFydFR5cGVJbmZvcm1hdGlvbiIgXQ0KfQ== + # urn:samm:io.catenax.serial_part:1.0.1#SerialPart + dXJuOnNhbW06aW8uY2F0ZW5heC5zZXJpYWxfcGFydDoxLjAuMSNTZXJpYWxQYXJ0: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIkEgc2VyaWFsaXplZCBwYXJ0IGlzIGFuIGluc3RhbnRpYXRpb24gb2YgYSAoZGVzaWduLSkgcGFydCwgd2hlcmUgdGhlIHBhcnRpY3VsYXIgaW5zdGFudGlhdGlvbiBjYW4gYmUgdW5pcXVlbHkgaWRlbnRpZmllZCBieSBtZWFucyBvZiBhIHNlcmlhbCBudW1iZXIgb3IgYSBzaW1pbGFyIGlkZW50aWZpZXIgKGUuZy4gVkFOKSBvciBhIGNvbWJpbmF0aW9uIG9mIG11bHRpcGxlIGlkZW50aWZpZXJzIChlLmcuIGNvbWJpbmF0aW9uIG9mIG1hbnVmYWN0dXJlciwgZGF0ZSBhbmQgbnVtYmVyKSIsDQogICJ0eXBlIiA6ICJvYmplY3QiLA0KICAiY29tcG9uZW50cyIgOiB7DQogICAgInNjaGVtYXMiIDogew0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMS4wLjFfQ2F0ZW5hWElkVHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcHJvdmlkZWQgcmVndWxhciBleHByZXNzaW9uIGVuc3VyZXMgdGhhdCB0aGUgVVVJRCBpcyBjb21wb3NlZCBvZiBmaXZlIGdyb3VwcyBvZiBjaGFyYWN0ZXJzIHNlcGFyYXRlZCBieSBoeXBoZW5zLCBpbiB0aGUgZm9ybSA4LTQtNC00LTEyIGZvciBhIHRvdGFsIG9mIDM2IGNoYXJhY3RlcnMgKDMyIGhleGFkZWNpbWFsIGNoYXJhY3RlcnMgYW5kIDQgaHlwaGVucyksIG9wdGlvbmFsbHkgcHJlZml4ZWQgYnkgXCJ1cm46dXVpZDpcIiB0byBtYWtlIGl0IGFuIElSSS4iLA0KICAgICAgICAicGF0dGVybiIgOiAiKF51cm46dXVpZDpbMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kKSINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8xLjAuMV9LZXlDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBrZXkgY2hhcmFjdGVyaXN0aWMgb2YgYSBsb2NhbCBpZGVudGlmaWVyLiBBIHNwZWNpZmljIHN1YnNldCBvZiBrZXlzIGlzIHByZWRlZmluZWQsIGJ1dCBhZGRpdGlvbmFsbHkgYW55IG90aGVyIGN1c3RvbSBrZXkgaXMgYWxsb3dlZC4gUHJlZGVmaW5lZCBrZXlzICh0byBiZSB1c2VkIHdoZW4gYXBwbGljYWJsZSk6XG4tIFwibWFudWZhY3R1cmVySWRcIiAtIFRoZSBCdXNpbmVzcyBQYXJ0bmVyIE51bWJlciAoQlBOKSBvZiB0aGUgbWFudWZhY3R1cmVyLiBWYWx1ZTogQlBOLU51bW1lclxuLSBcInBhcnRJbnN0YW5jZUlkXCIgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgbWFudWZhY3R1cmVyIGZvciB0aGUgc2VyaWFsaXplZCBpbnN0YW5jZSBvZiB0aGUgcGFydCwgZS5nLiB0aGUgc2VyaWFsIG51bWJlclxuLSBcImJhdGNoSWRcIiAtIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBiYXRjaCwgdG8gd2hpY2ggdGhlIHNlcmlhbHplZCBwYXJ0IGJlbG9uZ3Ncbi0gXCJ2YW5cIiAtIFRoZSBhbm9ueW1pemVkIHZlaGljbGUgaWRlbnRpZmljYXRpb24gbnVtYmVyIChWSU4pLiBWYWx1ZTogYW5vbnltaXplZCBWSU4gYWNjb3JkaW5nIHRvIE9FTSBhbm9ueW1pemF0aW9uIHJ1bGVzLiBOb3RlOiBJZiB0aGUga2V5IFwidmFuXCIgaXMgYXZhaWxhYmxlLCBcInBhcnRJbnN0YW5jZUlkXCIgbXVzdCBhbHNvIGJlIGF2YWlsYWJsZSBhbmQgaG9sZCB0aGUgaWRlbnRpY2FsIHZhbHVlLiINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8xLjAuMV9WYWx1ZUNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHZhbHVlIG9mIGFuIGlkZW50aWZpZXIuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzEuMC4xX0tleVZhbHVlTGlzdCIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBsaXN0IG9mIGtleSB2YWx1ZSBwYWlycyBmb3IgbG9jYWwgaWRlbnRpZmllcnMsIHdoaWNoIGFyZSBjb21wb3NlZCBvZiBhIGtleSBhbmQgYSBjb3JyZXNwb25kaW5nIHZhbHVlLiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImtleSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBrZXkgb2YgYSBsb2NhbCBpZGVudGlmaWVyLiAiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMS4wLjFfS2V5Q2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAidmFsdWUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgdmFsdWUgb2YgYW4gaWRlbnRpZmllci4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMS4wLjFfVmFsdWVDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJrZXkiLCAidmFsdWUiIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8xLjAuMV9Mb2NhbElkZW50aWZpZXJDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBzaW5nbGUgc2VyaWFsaXplZCBwYXJ0IG1heSBoYXZlIG11bHRpcGxlIGF0dHJpYnV0ZXMsIHRoYXQgdW5pcXVlbHkgaWRlbnRpZnkgYSB0aGF0IHBhcnQgaW4gYSBzcGVjaWZpYyBkYXRhc3BhY2UgKGUuZy4gdGhlIG1hbnVmYWN0dXJlcmBzIGRhdGFzcGFjZSkiLA0KICAgICAgICAidHlwZSIgOiAiYXJyYXkiLA0KICAgICAgICAiaXRlbXMiIDogew0KICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzEuMC4xX0tleVZhbHVlTGlzdCINCiAgICAgICAgfSwNCiAgICAgICAgInVuaXF1ZUl0ZW1zIiA6IHRydWUNCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RpbWVzdGFtcCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAicGF0dGVybiIgOiAiLT8oWzEtOV1bMC05XXszLH18MFswLTldezN9KS0oMFsxLTldfDFbMC0yXSktKDBbMS05XXxbMTJdWzAtOV18M1swMV0pVCgoWzAxXVswLTldfDJbMC0zXSk6WzAtNV1bMC05XTpbMC01XVswLTldKFxcLlswLTldKyk/fCgyNDowMDowMChcXC4wKyk/KSkoWnwoXFwrfC0pKCgwWzAtOV18MVswLTNdKTpbMC01XVswLTldfDE0OjAwKSk/IiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEZXNjcmliZXMgYSBQcm9wZXJ0eSB3aGljaCBjb250YWlucyB0aGUgZGF0ZSBhbmQgdGltZSB3aXRoIGFuIG9wdGlvbmFsIHRpbWV6b25lLiINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8xLjAuMV9Qcm9kdWN0aW9uQ291bnRyeUNvZGVUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlJlZ3VsYXIgRXhwcmVzc2lvbiB0aGF0IGVuc3VyZXMgYSB0aHJlZS1sZXR0ZXIgY29kZSAiLA0KICAgICAgICAicGF0dGVybiIgOiAiXltBLVpdW0EtWl1bQS1aXSQiDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMS4wLjFfTWFudWZhY3R1cmluZ0NoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyB0byBkZXNjcmliZSBtYW51ZmFjdHVyaW5nIHJlbGF0ZWQgZGF0YSIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImRhdGUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaW1lc3RhbXAgb2YgdGhlIG1hbnVmYWN0dXJpbmcgZGF0ZSBhcyB0aGUgZmluYWwgc3RlcCBpbiBwcm9kdWN0aW9uIHByb2Nlc3MgKGUuZy4gZmluYWwgcXVhbGl0eSBjaGVjaywgcmVhZHktZm9yLXNoaXBtZW50IGV2ZW50KSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RpbWVzdGFtcCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjb3VudHJ5IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ291bnRyeSBjb2RlIHdoZXJlIHRoZSBwYXJ0IHdhcyBtYW51ZmFjdHVyZWQiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMS4wLjFfUHJvZHVjdGlvbkNvdW50cnlDb2RlVHJhaXQiDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicmVxdWlyZWQiIDogWyAiZGF0ZSIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzEuMC4xX1BhcnRJZENoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHBhcnQgSUQgaXMgYSBtdWx0aS1jaGFyYWN0ZXIgc3RyaW5nLCB1c3VzYWxseSBhc3NpZ25lZCBieSBhbiBFUlAgc3lzdGVtIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzEuMC4xX1BhcnROYW1lQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJQYXJ0IE5hbWUgaW4gc3RyaW5nIGZvcm1hdCBmcm9tIHRoZSByZXNwZWN0aXZlIHN5c3RlbSBpbiB0aGUgdmFsdWUgY2hhaW4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMS4wLjFfQ2xhc3NpZmljYXRpb25DaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkEgcGFydCB0eXBlIG11c3QgYmUgcGxhY2VkIGludG8gb25lIG9mIHRoZSBmb2xsb3dpbmcgY2xhc3NlczogJ2NvbXBvbmVudCcsICdwcm9kdWN0JywgJ3NvZnR3YXJlJywgJ2Fzc2VtYmx5JywgJ3Rvb2wnLCBvciAncmF3IG1hdGVyaWFsJy4iLA0KICAgICAgICAiZW51bSIgOiBbICJwcm9kdWN0IiwgInJhdyBtYXRlcmlhbCIsICJzb2Z0d2FyZSIsICJhc3NlbWJseSIsICJ0b29sIiwgImNvbXBvbmVudCIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzEuMC4xX1BhcnRUeXBlSW5mb3JtYXRpb25DaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgcGFydCB0eXBlIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAibWFudWZhY3R1cmVyUGFydElkIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUGFydCBJRCBhcyBhc3NpZ25lZCBieSB0aGUgbWFudWZhY3R1cmVyIG9mIHRoZSBwYXJ0LiBUaGUgUGFydCBJRCBpZGVudGlmaWVzIHRoZSBwYXJ0IChhcyBkZXNpZ25lZCkgaW4gdGhlIG1hbnVmYWN0dXJlcmBzIGRhdGFzcGFjZS4gVGhlIFBhcnQgSUQgZG9lcyBub3QgcmVmZXJlbmNlIGEgc3BlY2lmaWMgaW5zdGFuY2Ugb2YgYSBwYXJ0IGFuZCB0aHVzIHNob3VsZCBub3QgYmUgY29uZnVzZWQgd2l0aCB0aGUgc2VyaWFsIG51bWJlci4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMS4wLjFfUGFydElkQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY3VzdG9tZXJQYXJ0SWQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJQYXJ0IElEIGFzIGFzc2lnbmVkIGJ5IHRoZSBtYW51ZmFjdHVyZXIgb2YgdGhlIHBhcnQuIFRoZSBQYXJ0IElEIGlkZW50aWZpZXMgdGhlIHBhcnQgKGFzIGRlc2lnbmVkKSBpbiB0aGUgY3VzdG9tZXJgcyBkYXRhc3BhY2UuIFRoZSBQYXJ0IElEIGRvZXMgbm90IHJlZmVyZW5jZSBhIHNwZWNpZmljIGluc3RhbmNlIG9mIGEgcGFydCBhbmQgdGh1cyBzaG91bGQgbm90IGJlIGNvbmZ1c2VkIHdpdGggdGhlIHNlcmlhbCBudW1iZXIuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzEuMC4xX1BhcnRJZENoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgIm5hbWVBdE1hbnVmYWN0dXJlciIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIk5hbWUgb2YgdGhlIHBhcnQgYXMgYXNzaWduZWQgYnkgdGhlIG1hbnVmYWN0dXJlciIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8xLjAuMV9QYXJ0TmFtZUNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgIm5hbWVBdEN1c3RvbWVyIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiTmFtZSBvZiB0aGUgcGFydCBhcyBhc3NpZ25lZCBieSB0aGUgY3VzdG9tZXIiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMS4wLjFfUGFydE5hbWVDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjbGFzc2lmaWNhdGlvbiIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBjbGFzc2lmaWNhdGlvbiBvZiB0aGUgcGFydCB0eXBlIGFjY29yZGluZyB0byBTVEVQIHN0YW5kYXJkIGRlZmluaXRpb24iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMS4wLjFfQ2xhc3NpZmljYXRpb25DaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJtYW51ZmFjdHVyZXJQYXJ0SWQiLCAibmFtZUF0TWFudWZhY3R1cmVyIiwgImNsYXNzaWZpY2F0aW9uIiBdDQogICAgICB9DQogICAgfQ0KICB9LA0KICAicHJvcGVydGllcyIgOiB7DQogICAgImNhdGVuYVhJZCIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBmdWxseSBhbm9ueW1vdXMgQ2F0ZW5hLVggSUQgb2YgdGhlIHNlcmlhbGl6ZWQgcGFydCwgdmFsaWQgZm9yIHRoZSBDYXRlbmEtWCBkYXRhc3BhY2UuIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzEuMC4xX0NhdGVuYVhJZFRyYWl0Ig0KICAgIH0sDQogICAgImxvY2FsSWRlbnRpZmllcnMiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJBIGxvY2FsIGlkZW50aWZpZXIgZW5hYmxlcyBpZGVudGlmaWNhdGlvbiBvZiBhIHBhcnQgaW4gYSBzcGVjaWZpYyBkYXRhc3BhY2UsIGJ1dCBpcyBub3QgdW5pcXVlIGluIENhdGVuYS1YIGRhdGFzcGFjZS4gTXVsdGlwbGUgbG9jYWwgaWRlbnRpZmllcnMgbWF5IGV4aXN0LiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8xLjAuMV9Mb2NhbElkZW50aWZpZXJDaGFyYWN0ZXJpc3RpYyINCiAgICB9LA0KICAgICJtYW51ZmFjdHVyaW5nSW5mb3JtYXRpb24iIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJJbmZvcm1hdGlvbiBmcm9tIG1hbnVmYWN0dXJpbmcgcHJvY2Vzcywgc3VjaCBhcyBtYW51ZmFjdHVyaW5nIGRhdGUgYW5kIG1hbnVmYWN0dXJpbmcgY291bnRyeSIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8xLjAuMV9NYW51ZmFjdHVyaW5nQ2hhcmFjdGVyaXN0aWMiDQogICAgfSwNCiAgICAicGFydFR5cGVJbmZvcm1hdGlvbiIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwYXJ0IHR5cGUgZnJvbSB3aGljaCB0aGUgc2VyaWFsaXplZCBwYXJ0IGhhcyBiZWVuIGluc3RhbnRpYXRlZCIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8xLjAuMV9QYXJ0VHlwZUluZm9ybWF0aW9uQ2hhcmFjdGVyaXN0aWMiDQogICAgfQ0KICB9LA0KICAicmVxdWlyZWQiIDogWyAiY2F0ZW5hWElkIiwgImxvY2FsSWRlbnRpZmllcnMiLCAibWFudWZhY3R1cmluZ0luZm9ybWF0aW9uIiwgInBhcnRUeXBlSW5mb3JtYXRpb24iIF0NCn0= + # urn:samm:io.catenax.serial_part:2.0.0#SerialPart + dXJuOnNhbW06aW8uY2F0ZW5heC5zZXJpYWxfcGFydDoyLjAuMCNTZXJpYWxQYXJ0: ewogICIkc2NoZW1hIiA6ICJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSIsCiAgImRlc2NyaXB0aW9uIiA6ICJBIHNlcmlhbGl6ZWQgcGFydCBpcyBhbiBpbnN0YW50aWF0aW9uIG9mIGEgKGRlc2lnbi0pIHBhcnQsIHdoZXJlIHRoZSBwYXJ0aWN1bGFyIGluc3RhbnRpYXRpb24gY2FuIGJlIHVuaXF1ZWx5IGlkZW50aWZpZWQgYnkgbWVhbnMgb2YgYSBzZXJpYWwgbnVtYmVyIG9yIGEgc2ltaWxhciBpZGVudGlmaWVyIChlLmcuIFZBTikgb3IgYSBjb21iaW5hdGlvbiBvZiBtdWx0aXBsZSBpZGVudGlmaWVycyAoZS5nLiBjb21iaW5hdGlvbiBvZiBtYW51ZmFjdHVyZXIsIGRhdGUgYW5kIG51bWJlcikiLAogICJ0eXBlIiA6ICJvYmplY3QiLAogICJjb21wb25lbnRzIiA6IHsKICAgICJzY2hlbWFzIiA6IHsKICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnV1aWRfMS4wLjBfVXVpZFY0VHJhaXQiIDogewogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLAogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHByb3ZpZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbiBlbnN1cmVzIHRoYXQgdGhlIFVVSUQgaXMgY29tcG9zZWQgb2YgZml2ZSBncm91cHMgb2YgY2hhcmFjdGVycyBzZXBhcmF0ZWQgYnkgaHlwaGVucywgaW4gdGhlIGZvcm0gOC00LTQtNC0xMiBmb3IgYSB0b3RhbCBvZiAzNiBjaGFyYWN0ZXJzICgzMiBoZXhhZGVjaW1hbCBjaGFyYWN0ZXJzIGFuZCA0IGh5cGhlbnMpLCBvcHRpb25hbGx5IHByZWZpeGVkIGJ5IFwidXJuOnV1aWQ6XCIgdG8gbWFrZSBpdCBhbiBJUkkuIiwKICAgICAgICAicGF0dGVybiIgOiAiKF5bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kKXwoXnVybjp1dWlkOlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQpIgogICAgICB9LAogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8yLjAuMF9LZXlDaGFyYWN0ZXJpc3RpYyIgOiB7CiAgICAgICAgInR5cGUiIDogInN0cmluZyIsCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUga2V5IGNoYXJhY3RlcmlzdGljIG9mIGEgbG9jYWwgaWRlbnRpZmllci4gQSBzcGVjaWZpYyBzdWJzZXQgb2Yga2V5cyBpcyBwcmVkZWZpbmVkLCBidXQgYWRkaXRpb25hbGx5IGFueSBvdGhlciBjdXN0b20ga2V5IGlzIGFsbG93ZWQuIFByZWRlZmluZWQga2V5cyAodG8gYmUgdXNlZCB3aGVuIGFwcGxpY2FibGUpOlxuLSBcIm1hbnVmYWN0dXJlcklkXCIgLSBUaGUgQnVzaW5lc3MgUGFydG5lciBOdW1iZXIgKEJQTikgb2YgdGhlIG1hbnVmYWN0dXJlci4gVmFsdWU6IEJQTi1OdW1tZXJcbi0gXCJwYXJ0SW5zdGFuY2VJZFwiIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIG1hbnVmYWN0dXJlciBmb3IgdGhlIHNlcmlhbGl6ZWQgaW5zdGFuY2Ugb2YgdGhlIHBhcnQsIGUuZy4gdGhlIHNlcmlhbCBudW1iZXJcbi0gXCJiYXRjaElkXCIgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgYmF0Y2gsIHRvIHdoaWNoIHRoZSBzZXJpYWx6ZWQgcGFydCBiZWxvbmdzXG4tIFwidmFuXCIgLSBUaGUgYW5vbnltaXplZCB2ZWhpY2xlIGlkZW50aWZpY2F0aW9uIG51bWJlciAoVklOKS4gVmFsdWU6IGFub255bWl6ZWQgVklOIGFjY29yZGluZyB0byBPRU0gYW5vbnltaXphdGlvbiBydWxlcy4gTm90ZTogSWYgdGhlIGtleSBcInZhblwiIGlzIGF2YWlsYWJsZSwgXCJwYXJ0SW5zdGFuY2VJZFwiIG11c3QgYWxzbyBiZSBhdmFpbGFibGUgYW5kIGhvbGQgdGhlIGlkZW50aWNhbCB2YWx1ZS4iCiAgICAgIH0sCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzIuMC4wX1ZhbHVlQ2hhcmFjdGVyaXN0aWMiIDogewogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLAogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHZhbHVlIG9mIGFuIGlkZW50aWZpZXIuIgogICAgICB9LAogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8yLjAuMF9LZXlWYWx1ZUxpc3QiIDogewogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBsaXN0IG9mIGtleSB2YWx1ZSBwYWlycyBmb3IgbG9jYWwgaWRlbnRpZmllcnMsIHdoaWNoIGFyZSBjb21wb3NlZCBvZiBhIGtleSBhbmQgYSBjb3JyZXNwb25kaW5nIHZhbHVlLiIsCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsCiAgICAgICAgInByb3BlcnRpZXMiIDogewogICAgICAgICAgImtleSIgOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGtleSBvZiBhIGxvY2FsIGlkZW50aWZpZXIuICIsCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzIuMC4wX0tleUNoYXJhY3RlcmlzdGljIgogICAgICAgICAgfSwKICAgICAgICAgICJ2YWx1ZSIgOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHZhbHVlIG9mIGFuIGlkZW50aWZpZXIuIiwKICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMi4wLjBfVmFsdWVDaGFyYWN0ZXJpc3RpYyIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJyZXF1aXJlZCIgOiBbICJrZXkiLCAidmFsdWUiIF0KICAgICAgfSwKICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMi4wLjBfTG9jYWxJZGVudGlmaWVyQ2hhcmFjdGVyaXN0aWMiIDogewogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBzaW5nbGUgc2VyaWFsaXplZCBwYXJ0IG1heSBoYXZlIG11bHRpcGxlIGF0dHJpYnV0ZXMsIHRoYXQgdW5pcXVlbHkgaWRlbnRpZnkgYSB0aGF0IHBhcnQgaW4gYSBzcGVjaWZpYyBkYXRhc3BhY2UgKGUuZy4gdGhlIG1hbnVmYWN0dXJlcmBzIGRhdGFzcGFjZSkiLAogICAgICAgICJ0eXBlIiA6ICJhcnJheSIsCiAgICAgICAgIml0ZW1zIiA6IHsKICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzIuMC4wX0tleVZhbHVlTGlzdCIKICAgICAgICB9LAogICAgICAgICJ1bmlxdWVJdGVtcyIgOiB0cnVlCiAgICAgIH0sCiAgICAgICJ1cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGltZXN0YW1wIiA6IHsKICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwKICAgICAgICAicGF0dGVybiIgOiAiLT8oWzEtOV1bMC05XXszLH18MFswLTldezN9KS0oMFsxLTldfDFbMC0yXSktKDBbMS05XXxbMTJdWzAtOV18M1swMV0pVCgoWzAxXVswLTldfDJbMC0zXSk6WzAtNV1bMC05XTpbMC01XVswLTldKFxcLlswLTldKyk/fCgyNDowMDowMChcXC4wKyk/KSkoWnwoXFwrfC0pKCgwWzAtOV18MVswLTNdKTpbMC01XVswLTldfDE0OjAwKSk/IiwKICAgICAgICAiZGVzY3JpcHRpb24iIDogIkRlc2NyaWJlcyBhIFByb3BlcnR5IHdoaWNoIGNvbnRhaW5zIHRoZSBkYXRlIGFuZCB0aW1lIHdpdGggYW4gb3B0aW9uYWwgdGltZXpvbmUuIgogICAgICB9LAogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8yLjAuMF9Qcm9kdWN0aW9uQ291bnRyeUNvZGVUcmFpdCIgOiB7CiAgICAgICAgInR5cGUiIDogInN0cmluZyIsCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJSZWd1bGFyIEV4cHJlc3Npb24gdGhhdCBlbnN1cmVzIGEgdGhyZWUtbGV0dGVyIGNvZGUgIiwKICAgICAgICAicGF0dGVybiIgOiAiXltBLVpdW0EtWl1bQS1aXSQiCiAgICAgIH0sCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzIuMC4wX01hbnVmYWN0dXJpbmdDaGFyYWN0ZXJpc3RpYyIgOiB7CiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyB0byBkZXNjcmliZSBtYW51ZmFjdHVyaW5nIHJlbGF0ZWQgZGF0YSIsCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsCiAgICAgICAgInByb3BlcnRpZXMiIDogewogICAgICAgICAgImRhdGUiIDogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRpbWVzdGFtcCBvZiB0aGUgbWFudWZhY3R1cmluZyBkYXRlIGFzIHRoZSBmaW5hbCBzdGVwIGluIHByb2R1Y3Rpb24gcHJvY2VzcyAoZS5nLiBmaW5hbCBxdWFsaXR5IGNoZWNrLCByZWFkeS1mb3Itc2hpcG1lbnQgZXZlbnQpIiwKICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UaW1lc3RhbXAiCiAgICAgICAgICB9LAogICAgICAgICAgImNvdW50cnkiIDogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNvdW50cnkgY29kZSB3aGVyZSB0aGUgcGFydCB3YXMgbWFudWZhY3R1cmVkIiwKICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMi4wLjBfUHJvZHVjdGlvbkNvdW50cnlDb2RlVHJhaXQiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAicmVxdWlyZWQiIDogWyAiZGF0ZSIgXQogICAgICB9LAogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8yLjAuMF9QYXJ0SWRDaGFyYWN0ZXJpc3RpYyIgOiB7CiAgICAgICAgInR5cGUiIDogInN0cmluZyIsCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcGFydCBJRCBpcyBhIG11bHRpLWNoYXJhY3RlciBzdHJpbmcsIHVzdWFsbHkgYXNzaWduZWQgYnkgYW4gRVJQIHN5c3RlbSIKICAgICAgfSwKICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMi4wLjBfUGFydE5hbWVDaGFyYWN0ZXJpc3RpYyIgOiB7CiAgICAgICAgInR5cGUiIDogInN0cmluZyIsCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJQYXJ0IE5hbWUgaW4gc3RyaW5nIGZvcm1hdCBmcm9tIHRoZSByZXNwZWN0aXZlIHN5c3RlbSBpbiB0aGUgdmFsdWUgY2hhaW4iCiAgICAgIH0sCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzIuMC4wX0NsYXNzaWZpY2F0aW9uQ2hhcmFjdGVyaXN0aWMiIDogewogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLAogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBwYXJ0IHR5cGUgbXVzdCBiZSBwbGFjZWQgaW50byBvbmUgb2YgdGhlIGZvbGxvd2luZyBjbGFzc2VzOiAnY29tcG9uZW50JywgJ3Byb2R1Y3QnLCAnc29mdHdhcmUnLCAnYXNzZW1ibHknLCAndG9vbCcsIG9yICdyYXcgbWF0ZXJpYWwnLiIsCiAgICAgICAgImVudW0iIDogWyAicHJvZHVjdCIsICJyYXcgbWF0ZXJpYWwiLCAic29mdHdhcmUiLCAiYXNzZW1ibHkiLCAidG9vbCIsICJjb21wb25lbnQiIF0KICAgICAgfSwKICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMi4wLjBfUGFydFR5cGVJbmZvcm1hdGlvbkNoYXJhY3RlcmlzdGljIiA6IHsKICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIHBhcnQgdHlwZSIsCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsCiAgICAgICAgInByb3BlcnRpZXMiIDogewogICAgICAgICAgIm1hbnVmYWN0dXJlclBhcnRJZCIgOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUGFydCBJRCBhcyBhc3NpZ25lZCBieSB0aGUgbWFudWZhY3R1cmVyIG9mIHRoZSBwYXJ0LiBUaGUgUGFydCBJRCBpZGVudGlmaWVzIHRoZSBwYXJ0IChhcyBkZXNpZ25lZCkgaW4gdGhlIG1hbnVmYWN0dXJlcmBzIGRhdGFzcGFjZS4gVGhlIFBhcnQgSUQgZG9lcyBub3QgcmVmZXJlbmNlIGEgc3BlY2lmaWMgaW5zdGFuY2Ugb2YgYSBwYXJ0IGFuZCB0aHVzIHNob3VsZCBub3QgYmUgY29uZnVzZWQgd2l0aCB0aGUgc2VyaWFsIG51bWJlci4iLAogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8yLjAuMF9QYXJ0SWRDaGFyYWN0ZXJpc3RpYyIKICAgICAgICAgIH0sCiAgICAgICAgICAiY3VzdG9tZXJQYXJ0SWQiIDogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlBhcnQgSUQgYXMgYXNzaWduZWQgYnkgdGhlIG1hbnVmYWN0dXJlciBvZiB0aGUgcGFydC4gVGhlIFBhcnQgSUQgaWRlbnRpZmllcyB0aGUgcGFydCAoYXMgZGVzaWduZWQpIGluIHRoZSBjdXN0b21lcmBzIGRhdGFzcGFjZS4gVGhlIFBhcnQgSUQgZG9lcyBub3QgcmVmZXJlbmNlIGEgc3BlY2lmaWMgaW5zdGFuY2Ugb2YgYSBwYXJ0IGFuZCB0aHVzIHNob3VsZCBub3QgYmUgY29uZnVzZWQgd2l0aCB0aGUgc2VyaWFsIG51bWJlci4iLAogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8yLjAuMF9QYXJ0SWRDaGFyYWN0ZXJpc3RpYyIKICAgICAgICAgIH0sCiAgICAgICAgICAibmFtZUF0TWFudWZhY3R1cmVyIiA6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJOYW1lIG9mIHRoZSBwYXJ0IGFzIGFzc2lnbmVkIGJ5IHRoZSBtYW51ZmFjdHVyZXIiLAogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8yLjAuMF9QYXJ0TmFtZUNoYXJhY3RlcmlzdGljIgogICAgICAgICAgfSwKICAgICAgICAgICJuYW1lQXRDdXN0b21lciIgOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiTmFtZSBvZiB0aGUgcGFydCBhcyBhc3NpZ25lZCBieSB0aGUgY3VzdG9tZXIiLAogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8yLjAuMF9QYXJ0TmFtZUNoYXJhY3RlcmlzdGljIgogICAgICAgICAgfSwKICAgICAgICAgICJjbGFzc2lmaWNhdGlvbiIgOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGNsYXNzaWZpY2F0aW9uIG9mIHRoZSBwYXJ0IHR5cGUgYWNjb3JkaW5nIHRvIFNURVAgc3RhbmRhcmQgZGVmaW5pdGlvbiIsCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzIuMC4wX0NsYXNzaWZpY2F0aW9uQ2hhcmFjdGVyaXN0aWMiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAicmVxdWlyZWQiIDogWyAibWFudWZhY3R1cmVyUGFydElkIiwgIm5hbWVBdE1hbnVmYWN0dXJlciIsICJjbGFzc2lmaWNhdGlvbiIgXQogICAgICB9LAogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQuYnVzaW5lc3NfcGFydG5lcl9udW1iZXJfMS4wLjBfQnBuc0NoYXJhY3RlcmlzdGljIiA6IHsKICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwKICAgICAgICAiZGVzY3JpcHRpb24iIDogIkJQTlMgKEJ1c2luZXNzIFBhcnRuZXIgTnVtYmVyIFNpdGUpIHJlcHJlc2VudHMgYSBzaXRlIHdoaWNoIGNhbiBiZSBhIHByb2R1Y3Rpb24gcGxhbnQuIEEgc2l0ZSBjYW4gYWxzbyBiZSBlLmcuIGFuIG9mZmljZSBvciBhIHdhcmVob3VzZS4gQW4gaW5mb3JtYXRpb24gcmVsYXRlZCB0byBhIHNpdGUgaXMgZS5nLiBuZWVkZWQgZm9yIHJlcG9ydGluZyBpc3N1ZXMgKEhvdyBtYW55IHNpdGVzIGRvZXMgZS5nLiBCZWlzcGllbCBBRyBoYXZlPyksIHN0YXR1cyBvZiBvcGVyYXRpb24gKG91dCBvZiBvcGVyYXRpb25zIGR1ZSB0byBlbnZpcm9ubWVudGFsIGRpc2FzdGVyKSwgZm9yIGNlcnRpZmljYXRlcyBvbiBzaXRlIGxldmVsIChlLmcuIGVudmlyb25tZW50IGNlcnRpZmljYXRlcykgb3IgZm9yIGludGVybmFsIHJlZ3VsYXRpb25zIG9uIHNpdGUgbGV2ZWwsIChlLmcuIHNlY3VyaXR5IHRvcGljcywgQ29yb25hIHJ1bGVzLC4uLikuIFNldmVyYWwgYWRkcmVzc2VzICg9IEJQTkEgd2l0aCBkaWZmZXJlbnQgc3RyZWV0cyBhbmQgZGlmZmVyZW50IGdhdGVzKSBjYW4gYmVsb25nIHRvIG9uZSBzaXRlLiBBIEJQTlMgc2hvdWxkIGJlIGFsd2F5cyBsaW5rZWQgdG8gb25lIEJQTkwgdmlhIHJlbGF0aW9uc2hpcCAnYmVsb25ncyB0byBsZWdhbCBlbnRpdHknLiIKICAgICAgfSwKICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8xLjAuMF9GdW5jdGlvbkNoYXJhY3RlcmlzdGljIiA6IHsKICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwKICAgICAgICAiZGVzY3JpcHRpb24iIDogIkRlc2NyaWJlcyB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBmdW5jdGlvbiBmb3IgYSBzaXRlIHJlbGF0ZWQgdG8gdGhlIHJlc3BlY3RpdmUgcGFydC4iLAogICAgICAgICJlbnVtIiA6IFsgInByb2R1Y3Rpb24iLCAid2FyZWhvdXNlIiwgInNwYXJlIHBhcnQgd2FyZWhvdXNlIiBdCiAgICAgIH0sCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X3NpdGVfaW5mb3JtYXRpb25fYXNfYnVpbHRfMS4wLjBfU2l0ZXNFbnRpdHkiIDogewogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGVzY3JpYmVzIHRoZSBJRCBhbmQgZnVuY3Rpb24gb2YgYSBzaXRlIGZvciB0aGUgYXNzb2NpYXRlZCBwYXJ0IGluIHRoZSBBc0J1aWx0IGNvbnRleHQoZS5nLiBTZXJpYWxQYXJ0LCBCYXRjaCwgaklTKS4iLAogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLAogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsKICAgICAgICAgICJjYXRlbmFYc2l0ZUlkIiA6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgaWRlbnRpZmllciBvZiB0aGUgc2l0ZSBhY2NvcmRpbmcgdG8gQ2F0ZW5hLVggQlBETS4gVGhlIGNhdGVuYVhzaXRlSWQgbXVzdCBiZSBhIHZhbGlkIENhdGVuYS1YIEJQTi4gVGhlIEJQTiBpcyBhIHVuaXF1ZSwgdW5jaGFuZ2VhYmxlIGlkZW50aWZpZXIgZm9yIEJ1c2luZXNzIFBhcnRuZXJzIC8gY29tcGFueSBsb2NhdGlvbnMgZnJvbSBmb3VuZGF0aW9uIHRvIGNsb3N1cmUsIHJlZ2FyZGxlc3Mgb2YgdGhlIGRpZmZlcmVudCBidXNpbmVzcyByZWxhdGlvbnNoaXBzIC8gc3RydWN0dXJlcyBiZXR3ZWVuIG9yIHdpdGhpbiB0aGUgQnVzaW5lc3MgUGFydG5lcnMgb3IgY29tcGFueSBsb2NhdGlvbnMuIiwKICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLmJ1c2luZXNzX3BhcnRuZXJfbnVtYmVyXzEuMC4wX0JwbnNDaGFyYWN0ZXJpc3RpYyIKICAgICAgICAgIH0sCiAgICAgICAgICAiZnVuY3Rpb24iIDogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBmdW5jdGlvbiBvZiB0aGUgc2l0ZSBpbiByZWxhdGlvbiB0byB0aGUgcGFydChpLmUuIHRoZSBhY3Rpdml0eSB3aXRoaW4gdGhlIHZhbHVlIGNoYWluIG9mIHRoZSBwYXJ0IHRoYXQgaXMgcGVyZm9ybWVkIGF0IHRoZSBzaXRlKSIsCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X3NpdGVfaW5mb3JtYXRpb25fYXNfYnVpbHRfMS4wLjBfRnVuY3Rpb25DaGFyYWN0ZXJpc3RpYyIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJyZXF1aXJlZCIgOiBbICJjYXRlbmFYc2l0ZUlkIiwgImZ1bmN0aW9uIiBdCiAgICAgIH0sCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X3NpdGVfaW5mb3JtYXRpb25fYXNfYnVpbHRfMS4wLjBfU2l0ZXNDaGFyYWN0ZXJpc3RpYyIgOiB7CiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJTaXRlcyBDaGFyYWN0ZXJpc3RpYyIsCiAgICAgICAgInR5cGUiIDogImFycmF5IiwKICAgICAgICAiaXRlbXMiIDogewogICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8xLjAuMF9TaXRlc0VudGl0eSIKICAgICAgICB9LAogICAgICAgICJ1bmlxdWVJdGVtcyIgOiB0cnVlCiAgICAgIH0KICAgIH0KICB9LAogICJwcm9wZXJ0aWVzIiA6IHsKICAgICJjYXRlbmFYSWQiIDogewogICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBmdWxseSBhbm9ueW1vdXMgQ2F0ZW5hLVggSUQgb2YgdGhlIHNlcmlhbGl6ZWQgcGFydCwgdmFsaWQgZm9yIHRoZSBDYXRlbmEtWCBkYXRhc3BhY2UuIiwKICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnV1aWRfMS4wLjBfVXVpZFY0VHJhaXQiCiAgICB9LAogICAgImxvY2FsSWRlbnRpZmllcnMiIDogewogICAgICAiZGVzY3JpcHRpb24iIDogIkEgbG9jYWwgaWRlbnRpZmllciBlbmFibGVzIGlkZW50aWZpY2F0aW9uIG9mIGEgcGFydCBpbiBhIHNwZWNpZmljIGRhdGFzcGFjZSwgYnV0IGlzIG5vdCB1bmlxdWUgaW4gQ2F0ZW5hLVggZGF0YXNwYWNlLiBNdWx0aXBsZSBsb2NhbCBpZGVudGlmaWVycyBtYXkgZXhpc3QuIiwKICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMi4wLjBfTG9jYWxJZGVudGlmaWVyQ2hhcmFjdGVyaXN0aWMiCiAgICB9LAogICAgIm1hbnVmYWN0dXJpbmdJbmZvcm1hdGlvbiIgOiB7CiAgICAgICJkZXNjcmlwdGlvbiIgOiAiSW5mb3JtYXRpb24gZnJvbSBtYW51ZmFjdHVyaW5nIHByb2Nlc3MsIHN1Y2ggYXMgbWFudWZhY3R1cmluZyBkYXRlIGFuZCBtYW51ZmFjdHVyaW5nIGNvdW50cnkiLAogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8yLjAuMF9NYW51ZmFjdHVyaW5nQ2hhcmFjdGVyaXN0aWMiCiAgICB9LAogICAgInBhcnRUeXBlSW5mb3JtYXRpb24iIDogewogICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwYXJ0IHR5cGUgZnJvbSB3aGljaCB0aGUgc2VyaWFsaXplZCBwYXJ0IGhhcyBiZWVuIGluc3RhbnRpYXRlZCIsCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzIuMC4wX1BhcnRUeXBlSW5mb3JtYXRpb25DaGFyYWN0ZXJpc3RpYyIKICAgIH0sCiAgICAic2l0ZXMiIDogewogICAgICAiZGVzY3JpcHRpb24iIDogIkEgc2l0ZSBpcyBhIGRlbGltaXRlZCBnZW9ncmFwaGljYWwgYXJlYSB3aGVyZSBhIGxlZ2FsIGVudGl0eSBkb2VzIGJ1c2luZXNzKGdlb2dyYXBoaWNhbCBhZGRyZXNzIHdpdGggZ2VvIGNvb3JkaW5hdGVzKS5BIHNpdGUgYWx3YXlzIGhhcyBhIHByaW1hcnkgcGh5c2ljYWwgYWRkcmVzcy4gSXQgaXMgcG9zc2libGUgdGhhdCBmdXJ0aGVyIHBoeXNpY2FsIGFkZHJlc3NlcyBhcmUgc3BlY2lmaWVkIGZvciB0aGUgc2l0ZS4gUC5PLiBib3ggZGV0YWlscyBhcmUgb25seSBwb3NzaWJsZSBpbiBhZGRpdGlvbiB0byB0aGUgcGh5c2ljYWwgYWRkcmVzcy4gQSBzaXRlIGhhcyBhIDE6biByZWxhdGlvbiB0byBhZGRyZXNzZXMsIG1lYW5zIGF0IGxlYXN0IDEgYWRkcmVzcyBpcyBuZWNlc3NhcnkgYW5kIG11bHRpcGxlIGFkZHJlc3NlcyBhcmUgcG9zc2libGUuIiwKICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8xLjAuMF9TaXRlc0NoYXJhY3RlcmlzdGljIgogICAgfQogIH0sCiAgInJlcXVpcmVkIiA6IFsgImNhdGVuYVhJZCIsICJsb2NhbElkZW50aWZpZXJzIiwgIm1hbnVmYWN0dXJpbmdJbmZvcm1hdGlvbiIsICJwYXJ0VHlwZUluZm9ybWF0aW9uIiBdCn0= + # urn:samm:io.catenax.serial_part:3.0.0#SerialPart + dXJuOnNhbW06aW8uY2F0ZW5heC5zZXJpYWxfcGFydDozLjAuMCNTZXJpYWxQYXJ0: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIkEgc2VyaWFsaXplZCBwYXJ0IGlzIGFuIGluc3RhbnRpYXRpb24gb2YgYSAoZGVzaWduLSlwYXJ0LCB3aGVyZSB0aGUgcGFydGljdWxhciBpbnN0YW50aWF0aW9uIGNhbiBiZSB1bmlxdWVseSBpZGVudGlmaWVkIGJ5IG1lYW5zIG9mIGEgc2VyaWFsIG51bWJlciBvciBhIHNpbWlsYXIgaWRlbnRpZmllciAoZS5nLiBWQU4pb3IgYSBjb21iaW5hdGlvbiBvZiBtdWx0aXBsZSBpZGVudGlmaWVycyAoZS5nLiBjb21iaW5hdGlvbiBvZiBtYW51ZmFjdHVyZXIsIGRhdGUgYW5kIG51bWJlcikiLA0KICAidHlwZSIgOiAib2JqZWN0IiwNCiAgImNvbXBvbmVudHMiIDogew0KICAgICJzY2hlbWFzIiA6IHsNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC51dWlkXzIuMC4wX1V1aWRWNFRyYWl0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHByb3ZpZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbiBlbnN1cmVzIHRoYXQgdGhlIFVVSUQgaXMgY29tcG9zZWQgb2YgZml2ZSBncm91cHMgb2YgY2hhcmFjdGVycyBzZXBhcmF0ZWQgYnkgaHlwaGVucywgaW4gdGhlIGZvcm0gOC00LTQtNC0xMiBmb3IgYSB0b3RhbCBvZiAzNiBjaGFyYWN0ZXJzICgzMiBoZXhhZGVjaW1hbCBjaGFyYWN0ZXJzIGFuZCA0IGh5cGhlbnMpLCBvcHRpb25hbGx5IHByZWZpeGVkIGJ5IFwidXJuOnV1aWQ6XCIgdG8gbWFrZSBpdCBhbiBJUkkuIiwNCiAgICAgICAgInBhdHRlcm4iIDogIiheWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCl8KF51cm46dXVpZDpbMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kKSINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8zLjAuMF9LZXlUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNvbnN0cmFpbnQgdGhhdCBlbnN1cmVzIHRoYXQgdGhlIHN0YW5kYXJkIGtleXMgYW5kIGN1c3RvbSBrZXkgcHJlZml4ZXMgY2FuIGJlIHVzZWQuIiwNCiAgICAgICAgInBhdHRlcm4iIDogIl4obWFudWZhY3R1cmVySWR8cGFydEluc3RhbmNlSWR8YmF0Y2hJZHx2YW58Y3VzdG9tS2V5OlxcdyspJCINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8zLjAuMF9WYWx1ZUNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHZhbHVlIG9mIGFuIGlkZW50aWZpZXIuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzMuMC4wX0tleVZhbHVlTGlzdCIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBsaXN0IG9mIGtleSB2YWx1ZSBwYWlycyBmb3IgbG9jYWwgaWRlbnRpZmllcnMsIHdoaWNoIGFyZSBjb21wb3NlZCBvZiBhIGtleSBhbmQgYSBjb3JyZXNwb25kaW5nIHZhbHVlLiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImtleSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBrZXkgb2YgYSBsb2NhbCBpZGVudGlmaWVyLiAiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMy4wLjBfS2V5VHJhaXQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAidmFsdWUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgdmFsdWUgb2YgYW4gaWRlbnRpZmllci4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMy4wLjBfVmFsdWVDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJrZXkiLCAidmFsdWUiIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8zLjAuMF9Mb2NhbElkZW50aWZpZXJDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBzaW5nbGUgc2VyaWFsaXplZCBwYXJ0IG1heSBoYXZlIG11bHRpcGxlIGF0dHJpYnV0ZXMsIHRoYXQgdW5pcXVlbHkgaWRlbnRpZnkgYSB0aGF0IHBhcnQgaW4gYSBzcGVjaWZpYyBkYXRhc3BhY2UgKGUuZy4gdGhlIG1hbnVmYWN0dXJlcmBzIGRhdGFzcGFjZSkiLA0KICAgICAgICAidHlwZSIgOiAiYXJyYXkiLA0KICAgICAgICAiaXRlbXMiIDogew0KICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzMuMC4wX0tleVZhbHVlTGlzdCINCiAgICAgICAgfSwNCiAgICAgICAgInVuaXF1ZUl0ZW1zIiA6IHRydWUNCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8zLjAuMF9EYXRlVGltZVRyYWl0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUmVndWxhciBFeHByZXNzaW9uIHRvIGVuYWJsZSBVVEMgYW5kIFRpbWV6b25lIGZvcm1hdHMgYW5kIHRoZSBwb3NzaWJpbGl0eSB0byBleGNsdWRlIHRpbWUgaW5mb3JtYXRpb24uIiwNCiAgICAgICAgInBhdHRlcm4iIDogIl4oPzpbMC05XXs0fS1bMC05XXsyfS1bMC05XXsyfVRbMC05XXsyfTpbMC05XXsyfTpbMC05XXsyfSg/OlsuXVswLTldKyk/WnxbMC05XXs0fS1bMC05XXsyfS1bMC05XXsyfSg/OlRbMC05XXsyfTpbMC05XXsyfTpbMC05XXsyfSg/OlsuXVswLTldKyk/KD86WnxbKy1dWzAtOV17Mn06WzAtOV17Mn0pKT8pJCINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8zLjAuMF9Qcm9kdWN0aW9uQ291bnRyeUNvZGVUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlJlZ3VsYXIgRXhwcmVzc2lvbiB0aGF0IGVuc3VyZXMgYSB0aHJlZS1sZXR0ZXIgY29kZSAiLA0KICAgICAgICAicGF0dGVybiIgOiAiXltBLVpdW0EtWl1bQS1aXSQiDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLmJ1c2luZXNzX3BhcnRuZXJfbnVtYmVyXzIuMC4wX0JwbnNUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwcm92aWRlZCByZWd1bGFyIGV4cHJlc3Npb24gZW5zdXJlcyB0aGF0IHRoZSBCUE5TIGlzIGNvbXBvc2VkIG9mIHByZWZpeCAnQlBOUycsIDEwIGRpZ2l0cyBhbmQgdHdvIGFscGhhbnVtZXJpYyBsZXR0ZXJzLiIsDQogICAgICAgICJwYXR0ZXJuIiA6ICJeQlBOU1thLXpBLVowLTldezEyfSQiDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8yLjAuMF9GdW5jdGlvbkNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGVzY3JpYmVzIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIGZ1bmN0aW9uIGZvciBhIHNpdGUgcmVsYXRlZCB0byB0aGUgcmVzcGVjdGl2ZSBwYXJ0LiIsDQogICAgICAgICJlbnVtIiA6IFsgInByb2R1Y3Rpb24iLCAid2FyZWhvdXNlIiwgInNwYXJlIHBhcnQgd2FyZWhvdXNlIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8yLjAuMF9TaXRlc0VudGl0eSIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGVzY3JpYmVzIHRoZSBJRCBhbmQgZnVuY3Rpb24gb2YgYSBzaXRlIGZvciB0aGUgYXNzb2NpYXRlZCBwYXJ0IGluIHRoZSBBc0J1aWx0IGNvbnRleHQoZS5nLiBTZXJpYWxQYXJ0LCBCYXRjaCwgaklTKS4iLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJjYXRlbmFYc2l0ZUlkIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGlkZW50aWZpZXIgb2YgdGhlIHNpdGUgYWNjb3JkaW5nIHRvIENhdGVuYS1YIEJQRE0uIFRoZSBjYXRlbmFYc2l0ZUlkIG11c3QgYmUgYSB2YWxpZCBDYXRlbmEtWCBCUE4uIFRoZSBCUE4gaXMgYSB1bmlxdWUsIHVuY2hhbmdlYWJsZSBpZGVudGlmaWVyIGZvciBCdXNpbmVzcyBQYXJ0bmVycyAvIGNvbXBhbnkgbG9jYXRpb25zIGZyb20gZm91bmRhdGlvbiB0byBjbG9zdXJlLCByZWdhcmRsZXNzIG9mIHRoZSBkaWZmZXJlbnQgYnVzaW5lc3MgcmVsYXRpb25zaGlwcyAvIHN0cnVjdHVyZXMgYmV0d2VlbiBvciB3aXRoaW4gdGhlIEJ1c2luZXNzIFBhcnRuZXJzIG9yIGNvbXBhbnkgbG9jYXRpb25zLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQuYnVzaW5lc3NfcGFydG5lcl9udW1iZXJfMi4wLjBfQnBuc1RyYWl0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImZ1bmN0aW9uIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGZ1bmN0aW9uIG9mIHRoZSBzaXRlIGluIHJlbGF0aW9uIHRvIHRoZSBwYXJ0KGkuZS4gdGhlIGFjdGl2aXR5IHdpdGhpbiB0aGUgdmFsdWUgY2hhaW4gb2YgdGhlIHBhcnQgdGhhdCBpcyBwZXJmb3JtZWQgYXQgdGhlIHNpdGUpIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X3NpdGVfaW5mb3JtYXRpb25fYXNfYnVpbHRfMi4wLjBfRnVuY3Rpb25DaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJjYXRlbmFYc2l0ZUlkIiwgImZ1bmN0aW9uIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8yLjAuMF9TaXRlc0NoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJTaXRlcyBDaGFyYWN0ZXJpc3RpYyIsDQogICAgICAgICJ0eXBlIiA6ICJhcnJheSIsDQogICAgICAgICJpdGVtcyIgOiB7DQogICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8yLjAuMF9TaXRlc0VudGl0eSINCiAgICAgICAgfSwNCiAgICAgICAgInVuaXF1ZUl0ZW1zIiA6IHRydWUNCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8zLjAuMF9NYW51ZmFjdHVyaW5nQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNoYXJhY3RlcmlzdGljIHRvIGRlc2NyaWJlIG1hbnVmYWN0dXJpbmcgcmVsYXRlZCBkYXRhIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAiZGF0ZSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRpbWVzdGFtcCBvZiB0aGUgbWFudWZhY3R1cmluZyBkYXRlIGFzIHRoZSBmaW5hbCBzdGVwIGluIHByb2R1Y3Rpb24gcHJvY2VzcyAoZS5nLiBmaW5hbCBxdWFsaXR5IGNoZWNrLCByZWFkeS1mb3Itc2hpcG1lbnQgZXZlbnQpIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzMuMC4wX0RhdGVUaW1lVHJhaXQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY291bnRyeSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNvdW50cnkgY29kZSB3aGVyZSB0aGUgcGFydCB3YXMgbWFudWZhY3R1cmVkIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzMuMC4wX1Byb2R1Y3Rpb25Db3VudHJ5Q29kZVRyYWl0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgInNpdGVzIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBzaXRlIGlzIGEgZGVsaW1pdGVkIGdlb2dyYXBoaWNhbCBhcmVhIHdoZXJlIGEgbGVnYWwgZW50aXR5IGRvZXMgYnVzaW5lc3MoZ2VvZ3JhcGhpY2FsIGFkZHJlc3Mgd2l0aCBnZW8gY29vcmRpbmF0ZXMpLkEgc2l0ZSBhbHdheXMgaGFzIGEgcHJpbWFyeSBwaHlzaWNhbCBhZGRyZXNzLiBJdCBpcyBwb3NzaWJsZSB0aGF0IGZ1cnRoZXIgcGh5c2ljYWwgYWRkcmVzc2VzIGFyZSBzcGVjaWZpZWQgZm9yIHRoZSBzaXRlLiBQLk8uIGJveCBkZXRhaWxzIGFyZSBvbmx5IHBvc3NpYmxlIGluIGFkZGl0aW9uIHRvIHRoZSBwaHlzaWNhbCBhZGRyZXNzLiBBIHNpdGUgaGFzIGEgMTpuIHJlbGF0aW9uIHRvIGFkZHJlc3NlcywgbWVhbnMgYXQgbGVhc3QgMSBhZGRyZXNzIGlzIG5lY2Vzc2FyeSBhbmQgbXVsdGlwbGUgYWRkcmVzc2VzIGFyZSBwb3NzaWJsZS4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8yLjAuMF9TaXRlc0NoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgImRhdGUiIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8zLjAuMF9QYXJ0SWRDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwYXJ0IElEIGlzIGEgbXVsdGktY2hhcmFjdGVyIHN0cmluZywgdXN1YWxseSBhc3NpZ25lZCBieSBhbiBFUlAgc3lzdGVtIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzMuMC4wX1BhcnROYW1lQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJQYXJ0IE5hbWUgaW4gc3RyaW5nIGZvcm1hdCBmcm9tIHRoZSByZXNwZWN0aXZlIHN5c3RlbSBpbiB0aGUgdmFsdWUgY2hhaW4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfY2xhc3NpZmljYXRpb25fMS4wLjBfQ2xhc3NpZmljYXRpb25TdGFuZGFyZENoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiSWRlbnRpZmllZCBjbGFzc2lmaWNhdGlvbiBzdGFuZGFyZHMgdGhhdCBhbGlnbiB0byB0aGUgQ2F0ZW5hLVggbmVlZHMuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X2NsYXNzaWZpY2F0aW9uXzEuMC4wX0NsYXNzaWZpY2F0aW9uSURDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkl0IGNhbiBiZSBudW1lcmljIG9yIGEgc3RyaW5nLCBkZXBlbmRpbmcgb24gdGhlIGNob3NlbiBjbGFzc2lmaWNhdGlvbiBzdGFuZGFyZC4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGVzY3JpYmVzIGEgUHJvcGVydHkgd2hpY2ggY29udGFpbnMgcGxhaW4gdGV4dC4gVGhpcyBpcyBpbnRlbmRlZCBleGNsdXNpdmVseSBmb3IgaHVtYW4gcmVhZGFibGUgc3RyaW5ncywgbm90IGZvciBpZGVudGlmaWVycywgbWVhc3VyZW1lbnQgdmFsdWVzLCBldGMuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X2NsYXNzaWZpY2F0aW9uXzEuMC4wX0NsYXNzaWZpY2F0aW9uRW50aXR5IiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJFbmNhcHN1bGF0ZXMgZGF0YSByZWxhdGVkIHRvIHRoZSBjbGFzc2lmaWNhdGlvbiBvZiB0aGUgcGFydC4iLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJjbGFzc2lmaWNhdGlvblN0YW5kYXJkIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiSWRlbnRpZmllZCBjbGFzc2lmaWNhdGlvbiBzdGFuZGFyZHMgdGhhdCBhbGlnbiB0byB0aGUgQ2F0ZW5hLVggbmVlZHMuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X2NsYXNzaWZpY2F0aW9uXzEuMC4wX0NsYXNzaWZpY2F0aW9uU3RhbmRhcmRDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjbGFzc2lmaWNhdGlvbklEIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGNsYXNzaWZpY2F0aW9uIElEIG9mIHRoZSBwYXJ0IHR5cGUgYWNjb3JkaW5nIHRvIHRoZSBjb3JyZXNwb25kaW5nIHN0YW5kYXJkIGRlZmluaXRpb24gbWVudGlvbmVkIGluIHRoZSBrZXkgdmFsdWUgcGFpci4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfY2xhc3NpZmljYXRpb25fMS4wLjBfQ2xhc3NpZmljYXRpb25JRENoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgImNsYXNzaWZpY2F0aW9uRGVzY3JpcHRpb24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJPcHRpb25hbCBwcm9wZXJ0eSBkZXNjcmliaW5nIHRoZSBjbGFzc2lmaWNhdGlvbiBzdGFuZGFyZC4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0Ig0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgImNsYXNzaWZpY2F0aW9uU3RhbmRhcmQiLCAiY2xhc3NpZmljYXRpb25JRCIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X2NsYXNzaWZpY2F0aW9uXzEuMC4wX0NsYXNzaWZpY2F0aW9uQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNsYXNzaWZpY2F0aW9uIGNoYXJhY3RlcmlzdGljIGVuYWJsaW5nIGEgc2V0IG9mIGZ1cnRoZXIgcHJvcGVydGllcy4iLA0KICAgICAgICAidHlwZSIgOiAiYXJyYXkiLA0KICAgICAgICAiaXRlbXMiIDogew0KICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X2NsYXNzaWZpY2F0aW9uXzEuMC4wX0NsYXNzaWZpY2F0aW9uRW50aXR5Ig0KICAgICAgICB9LA0KICAgICAgICAidW5pcXVlSXRlbXMiIDogdHJ1ZQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzMuMC4wX1BhcnRUeXBlSW5mb3JtYXRpb25DaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgcGFydCB0eXBlIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAibWFudWZhY3R1cmVyUGFydElkIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUGFydCBJRCBhcyBhc3NpZ25lZCBieSB0aGUgbWFudWZhY3R1cmVyIG9mIHRoZSBwYXJ0LiBUaGUgUGFydCBJRCBpZGVudGlmaWVzIHRoZSBwYXJ0IChhcyBkZXNpZ25lZClpbiB0aGUgbWFudWZhY3R1cmVyYHMgZGF0YXNwYWNlLiBUaGUgUGFydCBJRCBkb2VzIG5vdCByZWZlcmVuY2UgYSBzcGVjaWZpYyBpbnN0YW5jZSBvZiBhIHBhcnQgYW5kIHRodXMgc2hvdWxkIG5vdCBiZSBjb25mdXNlZCB3aXRoIHRoZSBzZXJpYWwgbnVtYmVyLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8zLjAuMF9QYXJ0SWRDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjdXN0b21lclBhcnRJZCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlBhcnQgSUQgYXMgYXNzaWduZWQgYnkgdGhlIG1hbnVmYWN0dXJlciBvZiB0aGUgcGFydC4gVGhlIFBhcnQgSUQgaWRlbnRpZmllcyB0aGUgcGFydCAoYXMgZGVzaWduZWQpaW4gdGhlIGN1c3RvbWVyYHMgZGF0YXNwYWNlLiBUaGUgUGFydCBJRCBkb2VzIG5vdCByZWZlcmVuY2UgYSBzcGVjaWZpYyBpbnN0YW5jZSBvZiBhIHBhcnQgYW5kIHRodXMgc2hvdWxkIG5vdCBiZSBjb25mdXNlZCB3aXRoIHRoZSBzZXJpYWwgbnVtYmVyLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF8zLjAuMF9QYXJ0SWRDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJuYW1lQXRNYW51ZmFjdHVyZXIiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJOYW1lIG9mIHRoZSBwYXJ0IGFzIGFzc2lnbmVkIGJ5IHRoZSBtYW51ZmFjdHVyZXIiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfMy4wLjBfUGFydE5hbWVDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJuYW1lQXRDdXN0b21lciIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIk5hbWUgb2YgdGhlIHBhcnQgYXMgYXNzaWduZWQgYnkgdGhlIGN1c3RvbWVyIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzMuMC4wX1BhcnROYW1lQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAicGFydENsYXNzaWZpY2F0aW9uIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUHJvcGVydHkgZGVzY3JpYmluZyB0aGUgY2xhc3NpZmljYXRpb24gb2YgYSBwYXJ0LiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQucGFydF9jbGFzc2lmaWNhdGlvbl8xLjAuMF9DbGFzc2lmaWNhdGlvbkNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgIm1hbnVmYWN0dXJlclBhcnRJZCIsICJuYW1lQXRNYW51ZmFjdHVyZXIiIF0NCiAgICAgIH0NCiAgICB9DQogIH0sDQogICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAiY2F0ZW5hWElkIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGZ1bGx5IGFub255bW91cyBDYXRlbmEtWCBJRCBvZiB0aGUgc2VyaWFsaXplZCBwYXJ0LCB2YWxpZCBmb3IgdGhlIENhdGVuYS1YIGRhdGFzcGFjZS4iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnV1aWRfMi4wLjBfVXVpZFY0VHJhaXQiDQogICAgfSwNCiAgICAibG9jYWxJZGVudGlmaWVycyIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIkEgbG9jYWwgaWRlbnRpZmllciBlbmFibGVzIGlkZW50aWZpY2F0aW9uIG9mIGEgcGFydCBpbiBhIHNwZWNpZmljIGRhdGFzcGFjZSwgYnV0IGlzIG5vdCB1bmlxdWUgaW4gQ2F0ZW5hLVggZGF0YXNwYWNlLiBNdWx0aXBsZSBsb2NhbCBpZGVudGlmaWVycyBtYXkgZXhpc3QuIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzMuMC4wX0xvY2FsSWRlbnRpZmllckNoYXJhY3RlcmlzdGljIg0KICAgIH0sDQogICAgIm1hbnVmYWN0dXJpbmdJbmZvcm1hdGlvbiIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIkluZm9ybWF0aW9uIGZyb20gbWFudWZhY3R1cmluZyBwcm9jZXNzLCBzdWNoIGFzIG1hbnVmYWN0dXJpbmcgZGF0ZSBhbmQgbWFudWZhY3R1cmluZyBjb3VudHJ5IiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzMuMC4wX01hbnVmYWN0dXJpbmdDaGFyYWN0ZXJpc3RpYyINCiAgICB9LA0KICAgICJwYXJ0VHlwZUluZm9ybWF0aW9uIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHBhcnQgdHlwZSBmcm9tIHdoaWNoIHRoZSBzZXJpYWxpemVkIHBhcnQgaGFzIGJlZW4gaW5zdGFudGlhdGVkIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0XzMuMC4wX1BhcnRUeXBlSW5mb3JtYXRpb25DaGFyYWN0ZXJpc3RpYyINCiAgICB9DQogIH0sDQogICJyZXF1aXJlZCIgOiBbICJjYXRlbmFYSWQiLCAibG9jYWxJZGVudGlmaWVycyIsICJtYW51ZmFjdHVyaW5nSW5mb3JtYXRpb24iLCAicGFydFR5cGVJbmZvcm1hdGlvbiIgXQ0KfQ== + # urn:samm:io.catenax.shared.part_site_information_as_built:1.0.0#PartSiteInformationAsBuilt + dXJuOnNhbW06aW8uY2F0ZW5heC5zaGFyZWQucGFydF9zaXRlX2luZm9ybWF0aW9uX2FzX2J1aWx0OjEuMC4wI1BhcnRTaXRlSW5mb3JtYXRpb25Bc0J1aWx0: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIlRoZSBhc3BlY3QgcHJvdmlkZXMgc2l0ZSByZWxhdGVkIGluZm9ybWF0aW9uIGZvciBhIGdpdmVuIGl0ZW0oaS5lLiBhIHBhcnQgdHlwZSBvciBwYXJ0IGluc3RhbmNlIHRoYXQgaXMgdW5pcXVlbHkgaWRlbnRpZmlhYmxlIHdpdGhpbiBDYXRlbmEtWCB2aWEgaXRzIENhdGVuYS1YIElEKS4gQSBzaXRlIGlzIGEgZGVsaW1pdGVkIGdlb2dyYXBoaWNhbCBhcmVhIHdoZXJlIGEgbGVnYWwgZW50aXR5IGRvZXMgYnVzaW5lc3MuIEluIHRoaXMgY29udGV4dCBhbGwgcG90ZW50aWFsbHkgcmVsYXRlZCBzaXRlcyBhcmUgbGlzdGVkIGluY2x1ZGluZyBhbGwgc2l0ZXMgd2hlcmUgZS5nLiBwcm9kdWN0aW9uIG9mIHRoaXMgcGFydCh0eXBlKS4iLA0KICAidHlwZSIgOiAib2JqZWN0IiwNCiAgImNvbXBvbmVudHMiIDogew0KICAgICJzY2hlbWFzIiA6IHsNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5idXNpbmVzc19wYXJ0bmVyX251bWJlcl8xLjAuMF9CcG5zQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJCUE5TIChCdXNpbmVzcyBQYXJ0bmVyIE51bWJlciBTaXRlKSByZXByZXNlbnRzIGEgc2l0ZSB3aGljaCBjYW4gYmUgYSBwcm9kdWN0aW9uIHBsYW50LiBBIHNpdGUgY2FuIGFsc28gYmUgZS5nLiBhbiBvZmZpY2Ugb3IgYSB3YXJlaG91c2UuIEFuIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gYSBzaXRlIGlzIGUuZy4gbmVlZGVkIGZvciByZXBvcnRpbmcgaXNzdWVzIChIb3cgbWFueSBzaXRlcyBkb2VzIGUuZy4gQmVpc3BpZWwgQUcgaGF2ZT8pLCBzdGF0dXMgb2Ygb3BlcmF0aW9uIChvdXQgb2Ygb3BlcmF0aW9ucyBkdWUgdG8gZW52aXJvbm1lbnRhbCBkaXNhc3RlciksIGZvciBjZXJ0aWZpY2F0ZXMgb24gc2l0ZSBsZXZlbCAoZS5nLiBlbnZpcm9ubWVudCBjZXJ0aWZpY2F0ZXMpIG9yIGZvciBpbnRlcm5hbCByZWd1bGF0aW9ucyBvbiBzaXRlIGxldmVsLCAoZS5nLiBzZWN1cml0eSB0b3BpY3MsIENvcm9uYSBydWxlcywuLi4pLiBTZXZlcmFsIGFkZHJlc3NlcyAoPSBCUE5BIHdpdGggZGlmZmVyZW50IHN0cmVldHMgYW5kIGRpZmZlcmVudCBnYXRlcykgY2FuIGJlbG9uZyB0byBvbmUgc2l0ZS4gQSBCUE5TIHNob3VsZCBiZSBhbHdheXMgbGlua2VkIHRvIG9uZSBCUE5MIHZpYSByZWxhdGlvbnNoaXAgJ2JlbG9uZ3MgdG8gbGVnYWwgZW50aXR5Jy4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8xLjAuMF9GdW5jdGlvbkNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGVzY3JpYmVzIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIGZ1bmN0aW9uIGZvciBhIHNpdGUgcmVsYXRlZCB0byB0aGUgcmVzcGVjdGl2ZSBwYXJ0LiIsDQogICAgICAgICJlbnVtIiA6IFsgInByb2R1Y3Rpb24iLCAid2FyZWhvdXNlIiwgInNwYXJlIHBhcnQgd2FyZWhvdXNlIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8xLjAuMF9TaXRlc0VudGl0eSIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGVzY3JpYmVzIHRoZSBJRCBhbmQgZnVuY3Rpb24gb2YgYSBzaXRlIGZvciB0aGUgYXNzb2NpYXRlZCBwYXJ0IGluIHRoZSBBc0J1aWx0IGNvbnRleHQoZS5nLiBTZXJpYWxQYXJ0LCBCYXRjaCwgaklTKS4iLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJjYXRlbmFYc2l0ZUlkIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGlkZW50aWZpZXIgb2YgdGhlIHNpdGUgYWNjb3JkaW5nIHRvIENhdGVuYS1YIEJQRE0uIFRoZSBjYXRlbmFYc2l0ZUlkIG11c3QgYmUgYSB2YWxpZCBDYXRlbmEtWCBCUE4uIFRoZSBCUE4gaXMgYSB1bmlxdWUsIHVuY2hhbmdlYWJsZSBpZGVudGlmaWVyIGZvciBCdXNpbmVzcyBQYXJ0bmVycyAvIGNvbXBhbnkgbG9jYXRpb25zIGZyb20gZm91bmRhdGlvbiB0byBjbG9zdXJlLCByZWdhcmRsZXNzIG9mIHRoZSBkaWZmZXJlbnQgYnVzaW5lc3MgcmVsYXRpb25zaGlwcyAvIHN0cnVjdHVyZXMgYmV0d2VlbiBvciB3aXRoaW4gdGhlIEJ1c2luZXNzIFBhcnRuZXJzIG9yIGNvbXBhbnkgbG9jYXRpb25zLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQuYnVzaW5lc3NfcGFydG5lcl9udW1iZXJfMS4wLjBfQnBuc0NoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgImZ1bmN0aW9uIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGZ1bmN0aW9uIG9mIHRoZSBzaXRlIGluIHJlbGF0aW9uIHRvIHRoZSBwYXJ0KGkuZS4gdGhlIGFjdGl2aXR5IHdpdGhpbiB0aGUgdmFsdWUgY2hhaW4gb2YgdGhlIHBhcnQgdGhhdCBpcyBwZXJmb3JtZWQgYXQgdGhlIHNpdGUpIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5wYXJ0X3NpdGVfaW5mb3JtYXRpb25fYXNfYnVpbHRfMS4wLjBfRnVuY3Rpb25DaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJjYXRlbmFYc2l0ZUlkIiwgImZ1bmN0aW9uIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8xLjAuMF9TaXRlc0NoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJTaXRlcyBDaGFyYWN0ZXJpc3RpYyIsDQogICAgICAgICJ0eXBlIiA6ICJhcnJheSIsDQogICAgICAgICJpdGVtcyIgOiB7DQogICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8xLjAuMF9TaXRlc0VudGl0eSINCiAgICAgICAgfSwNCiAgICAgICAgInVuaXF1ZUl0ZW1zIiA6IHRydWUNCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQudXVpZF8xLjAuMF9VdWlkVjRUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwcm92aWRlZCByZWd1bGFyIGV4cHJlc3Npb24gZW5zdXJlcyB0aGF0IHRoZSBVVUlEIGlzIGNvbXBvc2VkIG9mIGZpdmUgZ3JvdXBzIG9mIGNoYXJhY3RlcnMgc2VwYXJhdGVkIGJ5IGh5cGhlbnMsIGluIHRoZSBmb3JtIDgtNC00LTQtMTIgZm9yIGEgdG90YWwgb2YgMzYgY2hhcmFjdGVycyAoMzIgaGV4YWRlY2ltYWwgY2hhcmFjdGVycyBhbmQgNCBoeXBoZW5zKSwgb3B0aW9uYWxseSBwcmVmaXhlZCBieSBcInVybjp1dWlkOlwiIHRvIG1ha2UgaXQgYW4gSVJJLiIsDQogICAgICAgICJwYXR0ZXJuIiA6ICIoXlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQpfChedXJuOnV1aWQ6WzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCkiDQogICAgICB9DQogICAgfQ0KICB9LA0KICAicHJvcGVydGllcyIgOiB7DQogICAgInNpdGVzIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBzaXRlIGlzIGEgZGVsaW1pdGVkIGdlb2dyYXBoaWNhbCBhcmVhIHdoZXJlIGEgbGVnYWwgZW50aXR5IGRvZXMgYnVzaW5lc3MoZ2VvZ3JhcGhpY2FsIGFkZHJlc3Mgd2l0aCBnZW8gY29vcmRpbmF0ZXMpLkEgc2l0ZSBhbHdheXMgaGFzIGEgcHJpbWFyeSBwaHlzaWNhbCBhZGRyZXNzLiBJdCBpcyBwb3NzaWJsZSB0aGF0IGZ1cnRoZXIgcGh5c2ljYWwgYWRkcmVzc2VzIGFyZSBzcGVjaWZpZWQgZm9yIHRoZSBzaXRlLiBQLk8uIGJveCBkZXRhaWxzIGFyZSBvbmx5IHBvc3NpYmxlIGluIGFkZGl0aW9uIHRvIHRoZSBwaHlzaWNhbCBhZGRyZXNzLiBBIHNpdGUgaGFzIGEgMTpuIHJlbGF0aW9uIHRvIGFkZHJlc3NlcywgbWVhbnMgYXQgbGVhc3QgMSBhZGRyZXNzIGlzIG5lY2Vzc2FyeSBhbmQgbXVsdGlwbGUgYWRkcmVzc2VzIGFyZSBwb3NzaWJsZS4iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnBhcnRfc2l0ZV9pbmZvcm1hdGlvbl9hc19idWlsdF8xLjAuMF9TaXRlc0NoYXJhY3RlcmlzdGljIg0KICAgIH0sDQogICAgImNhdGVuYVhJZCIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBDYXRlbmEtWCBJRCBvZiB0aGUgZ2l2ZW4gaXRlbShpLmUuIGEgcGFydCB0eXBlIG9yIHBhcnQgaW5zdGFuY2UpLCB2YWxpZCBmb3IgdGhlIENhdGVuYS1YIGRhdGFzcGFjZS4iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnV1aWRfMS4wLjBfVXVpZFY0VHJhaXQiDQogICAgfQ0KICB9LA0KICAicmVxdWlyZWQiIDogWyAic2l0ZXMiLCAiY2F0ZW5hWElkIiBdDQp9 + # urn:samm:io.catenax.single_level_bom_as_built:1.0.0#SingleLevelBomAsBuilt + dXJuOnNhbW06aW8uY2F0ZW5heC5zaW5nbGVfbGV2ZWxfYm9tX2FzX2J1aWx0OjEuMC4wI1NpbmdsZUxldmVsQm9tQXNCdWlsdA: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIlRoZSBzaW5nbGUtbGV2ZWwgYmlsbCBvZiBtYXRlcmlhbCByZXByZXNlbnRzIG9uZSBzdWItbGV2ZWwgb2YgYW4gYXNzZW1ibHkgYW5kIGRvZXMgbm90IGluY2x1ZGUgYW55IGxvd2VyLWxldmVsIHN1YmFzc2VtYmxpZXMuIFRoZSBhcy1idWlsdCBsaWZlY3ljbGUgcmVmZXJlbmNlcyBhbGwgY2hpbGQgaXRlbXMgYXMgbWFudWZhY3R1cmVkIGJ5IHRoZSBtYW51ZmFjdHVyZXIgcmVmZXJlbmNpbmcgb25seSBjaGlsZCBpdGVtcyBpbiBhbiBhcyBidWlsdCBsaWZlY3ljbGUgdGhlbXNlbHZlcywgZS5nLiBzZXJpYWwgcGFydHMgb3IgYmF0Y2hlcy4iLA0KICAidHlwZSIgOiAib2JqZWN0IiwNCiAgImNvbXBvbmVudHMiIDogew0KICAgICJzY2hlbWFzIiA6IHsNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF9ib21fYXNfYnVpbHRfMS4wLjBfQ2F0ZW5hWElkVHJhaXRDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwcm92aWRlZCByZWd1bGFyIGV4cHJlc3Npb24gZW5zdXJlcyB0aGF0IHRoZSBVVUlEIGlzIGNvbXBvc2VkIG9mIGZpdmUgZ3JvdXBzIG9mIGNoYXJhY3RlcnMgc2VwYXJhdGVkIGJ5IGh5cGhlbnMsIGluIHRoZSBmb3JtIDgtNC00LTQtMTIgZm9yIGEgdG90YWwgb2YgMzYgY2hhcmFjdGVycyAoMzIgaGV4YWRlY2ltYWwgY2hhcmFjdGVycyBhbmQgNCBoeXBoZW5zKSwgb3B0aW9uYWxseSBwcmVmaXhlZCBieSBcInVybjp1dWlkOlwiIHRvIG1ha2UgaXQgYW4gSVJJLiIsDQogICAgICAgICJwYXR0ZXJuIiA6ICIoXlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQpfChedXJuOnV1aWQ6WzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCkiDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLm9wZW5tYW51ZmFjdHVyaW5nX2NoYXJhY3RlcmlzdGljXzIuMC4wX1RpbWVzdGFtcCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAicGF0dGVybiIgOiAiLT8oWzEtOV1bMC05XXszLH18MFswLTldezN9KS0oMFsxLTldfDFbMC0yXSktKDBbMS05XXxbMTJdWzAtOV18M1swMV0pVCgoWzAxXVswLTldfDJbMC0zXSk6WzAtNV1bMC05XTpbMC01XVswLTldKFxcLlswLTldKyk/fCgyNDowMDowMChcXC4wKyk/KSkoWnwoXFwrfC0pKCgwWzAtOV18MVswLTNdKTpbMC01XVswLTldfDE0OjAwKSk/IiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEZXNjcmliZXMgYSBQcm9wZXJ0eSB3aGljaCBjb250YWlucyB0aGUgZGF0ZSBhbmQgdGltZSB3aXRoIGFuIG9wdGlvbmFsIHRpbWV6b25lLiINCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5zaW5nbGVfbGV2ZWxfYm9tX2FzX2J1aWx0XzEuMC4wX051bWJlck9mT2JqZWN0cyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJudW1iZXIiLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlF1YW50aWZpYWJsZSBudW1iZXIgb2Ygb2JqZWN0cyBpbiByZWZlcmVuY2UgdG8gdGhlIG1lYXN1cmVtZW50VW5pdCINCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8ub3Blbm1hbnVmYWN0dXJpbmdfY2hhcmFjdGVyaXN0aWNfMi4wLjBfVW5pdFJlZmVyZW5jZSIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAicGF0dGVybiIgOiAiW2EtekEtWl0qOlthLXpBLVpdKyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGVzY3JpYmVzIGEgUHJvcGVydHkgY29udGFpbmluZyBhIHJlZmVyZW5jZSB0byBvbmUgb2YgdGhlIHVuaXRzIGluIHRoZSBVbml0IENhdGFsb2cuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF9ib21fYXNfYnVpbHRfMS4wLjBfUXVhbnRpdHlDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGVzY3JpYmVzIHRoZSBxdWFudGl0eSBpbiB3aGljaCB0aGUgY2hpbGQgaXRlbSBpcyBhc3NlbWJsZWQgaW4gdGhlIGdpdmVuIHBhcmVudCBpdGVtIGJ5IHByb3ZpZGluZyBhIHF1YW50aXR5IHZhbHVlIGFuZCB0aGUgbWVhc3VyZW1lbnQgdW5pdCBpbiB3aGljaCB0aGUgcXVhbnRpdHkgaXMgbWVhc3VyZWQuIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAicXVhbnRpdHlOdW1iZXIiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgbnVtYmVyIG9mIG9iamVjdHMgcmVsYXRlZCB0byB0aGUgbWVhc3VyZW1lbnQgdW5pdCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5zaW5nbGVfbGV2ZWxfYm9tX2FzX2J1aWx0XzEuMC4wX051bWJlck9mT2JqZWN0cyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJtZWFzdXJlbWVudFVuaXQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJVbml0IG9mIE1lYXN1cmVtZW50IGZvciB0aGUgcXVhbnRpdHkgb2Ygc2VyaWFsaXplZCBvYmplY3RzIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5vcGVubWFudWZhY3R1cmluZ19jaGFyYWN0ZXJpc3RpY18yLjAuMF9Vbml0UmVmZXJlbmNlIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgInF1YW50aXR5TnVtYmVyIiwgIm1lYXN1cmVtZW50VW5pdCIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF9ib21fYXNfYnVpbHRfMS4wLjBfQnBuVHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJCdXNpbmVzcyBQYXJ0bmVyIE51bWJlciBSZWd1bGFyIEV4cHJlc3Npb24gYWxsb3dpbmcgb25seSBCUE5MIHdoaWNoIHN0YW5kcyBmb3IgYSBsZWdhbCBlbnRpdHkuIiwNCiAgICAgICAgInBhdHRlcm4iIDogIl4oQlBOTCkoWzAtOV17OH0pKFthLXpBLVowLTldezR9KSQiDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguc2luZ2xlX2xldmVsX2JvbV9hc19idWlsdF8xLjAuMF9DaGlsZERhdGEiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNhdGVuYS1YIElEIGFuZCBtZXRhIGRhdGEgb2YgdGhlIGFzc2VtYmxlZCBjaGlsZCBpdGVtLiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImNyZWF0ZWRPbiIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRpbWVzdGFtcCB3aGVuIHRoZSByZWxhdGlvbiBiZXR3ZWVuIHRoZSBwYXJlbnQgaXRlbSBhbmQgdGhlIGNoaWxkIGl0ZW0gd2FzIGNyZWF0ZWQsIGUuZy4gd2hlbiB0aGUgc2VyaWFsaXplZCBjaGlsZCBwYXJ0IHdhcyBhc3NlbWJsZWQgaW50byB0aGUgZ2l2ZW4gcGFydC4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLm9wZW5tYW51ZmFjdHVyaW5nX2NoYXJhY3RlcmlzdGljXzIuMC4wX1RpbWVzdGFtcCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJxdWFudGl0eSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlF1YW50aXR5IG9mIHdoaWNoIHRoZSBjaGlsZCBpdGVtIGlzIGFzc2VtYmxlZCBpbnRvIHRoZSBwYXJlbnQgaXRlbS4gSW4gZ2VuZXJhbCBpdCBpcyAnMScgZm9yIHNlcmlhbGl6ZWQgcGFydHMuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF9ib21fYXNfYnVpbHRfMS4wLjBfUXVhbnRpdHlDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJsYXN0TW9kaWZpZWRPbiIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRpbWVzdGFtcCB3aGVuIHRoZSBhc3NlbWJseSByZWxhdGlvbnNoaXAgYmV0d2VlbiBwYXJlbnQgaXRlbSBhbmQgY2hpbGQgaXRlbSB3YXMgbGFzdCBtb2RpZmllZC4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLm9wZW5tYW51ZmFjdHVyaW5nX2NoYXJhY3RlcmlzdGljXzIuMC4wX1RpbWVzdGFtcCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjYXRlbmFYSWQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgQ2F0ZW5hLVggSUQgb2YgdGhlIGdpdmVuIHBhcnQgKGUuZy4gdGhlIGFzc2VtYmx5KSwgdmFsaWQgZm9yIHRoZSBDYXRlbmEtWCBkYXRhc3BhY2UuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF9ib21fYXNfYnVpbHRfMS4wLjBfQ2F0ZW5hWElkVHJhaXRDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJidXNpbmVzc1BhcnRuZXIiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgc3VwcGxpZXIgb2YgdGhlIGdpdmVuIGNoaWxkIGl0ZW0uIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF9ib21fYXNfYnVpbHRfMS4wLjBfQnBuVHJhaXQiDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicmVxdWlyZWQiIDogWyAiY3JlYXRlZE9uIiwgInF1YW50aXR5IiwgImNhdGVuYVhJZCIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF9ib21fYXNfYnVpbHRfMS4wLjBfU2V0T2ZDaGlsZEl0ZW1zQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlNldCBvZiBjaGlsZCBpdGVtcyB0aGUgcGFyZW50IGl0ZW0gaXMgYXNzZW1ibGVkIGJ5IChvbmUgc3RydWN0dXJhbCBsZXZlbCBkb3duKS4iLA0KICAgICAgICAidHlwZSIgOiAiYXJyYXkiLA0KICAgICAgICAiaXRlbXMiIDogew0KICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF9ib21fYXNfYnVpbHRfMS4wLjBfQ2hpbGREYXRhIg0KICAgICAgICB9LA0KICAgICAgICAidW5pcXVlSXRlbXMiIDogdHJ1ZQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgInByb3BlcnRpZXMiIDogew0KICAgICJjYXRlbmFYSWQiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgQ2F0ZW5hLVggSUQgb2YgdGhlIGdpdmVuIHBhcnQgKGUuZy4gdGhlIGFzc2VtYmx5KSwgdmFsaWQgZm9yIHRoZSBDYXRlbmEtWCBkYXRhc3BhY2UuIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF9ib21fYXNfYnVpbHRfMS4wLjBfQ2F0ZW5hWElkVHJhaXRDaGFyYWN0ZXJpc3RpYyINCiAgICB9LA0KICAgICJjaGlsZEl0ZW1zIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiU2V0IG9mIGNoaWxkIGl0ZW1zLCBvZiB3aGljaCB0aGUgZ2l2ZW4gcGFyZW50IGl0ZW0gaXMgYXNzZW1ibGVkIGJ5IChvbmUgc3RydWN0dXJhbCBsZXZlbCBkb3duKS4iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2luZ2xlX2xldmVsX2JvbV9hc19idWlsdF8xLjAuMF9TZXRPZkNoaWxkSXRlbXNDaGFyYWN0ZXJpc3RpYyINCiAgICB9DQogIH0sDQogICJyZXF1aXJlZCIgOiBbICJjYXRlbmFYSWQiLCAiY2hpbGRJdGVtcyIgXQ0KfQ== + dXJuOnNhbW06aW8uY2F0ZW5heC50cmFjdGlvbl9iYXR0ZXJ5X2NvZGU6MS4wLjAjVHJhY3Rpb25CYXR0ZXJ5Q29kZQ: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIlRoZSB0cmFjdGlvbiBiYXR0ZXJ5IGNvZGUgaXMgYW4gaWRlbnRpZmljYXRpb24gY29kZSBmb3IgYW55IGF1dG9tb3RpdmUgdHJhY3Rpb24gYmF0dGVyeSwgdWx0cmFjYXBhY2l0b3IgYW5kIG90aGVyIHJlYWNoYXJnZWJsZSBlbmVyZ3kgc3RvcmFnZSBkZXZpY2UuIEl0IGFsbG93cyB0byBjYXJyeSBpbmZvcm1hdGlvbiBhcyByZXF1aXJlZCBieSB0aGUgTmF0aW9uYWwgU3RhbmRhcmQgb2YgdGhlIFBlb3BsZSdzIFJlcHVibGljIG9mIENoaW5hIGFjY29yZGluZyB0byBHQi9UIDM0MDE0LTIwMTcgcHVibGlzaGVkIGJ5IHRoZSBTdGFuZGFyZGl6YXRpb24gQWRtaW5pc3RyYXRpb24gb2YgQ2hpbmEgKFNBQykuIiwNCiAgInR5cGUiIDogIm9iamVjdCIsDQogICJjb21wb25lbnRzIiA6IHsNCiAgICAic2NoZW1hcyIgOiB7DQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC50cmFjdGlvbl9iYXR0ZXJ5X2NvZGVfMS4wLjBfVHJhY3Rpb25CYXR0ZXJ5Q29kZVRyYWl0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHRyYWN0aW9uIGJhdHRlcnkgY29kZSBhcyByZXF1aXJlZCBieSB0aGUgTmF0aW9uYWwgU3RhbmRhcmQgb2YgdGhlIFBlb3BsZSdzIFJlcHVibGljIG9mIENoaW5hIGFjY29yZGluZyB0byBHQi9UIDM0MDE0LTIwMTcgcHVibGlzaGVkIGJ5IHRoZSBTdGFuZGFyZGl6YXRpb24gQWRtaW5pc3RyYXRpb24gb2YgQ2hpbmEgKFNBQykuIEl0IGNhbiBoYXZlIGEgbGVuZ3RoIG9mIGVpdGhlciAyNCBvciAxOCBjaGFyYWN0ZXJzLiIsDQogICAgICAgICJwYXR0ZXJuIiA6ICIoXltBLVowLTldezN9W1BNQ117MX1bQS1HWl17MX1bQS1aMC05XXsyfVtBLVowLTldezd9WzEtOUEtR0gtTlBSLVldezF9WzEtOUEtQ117MX1bMC05QS1HSC1OUFItWV17MX1bMC05XXs3fSQpfCheW0EtWjAtOV17M31bUE1DXXsxfVtBLUdaXXsxfVtBLVowLTldezJ9WzEtOUEtR0gtTlBSLVldezF9WzEtOUEtQ117MX1bMC05QS1HSC1OUFItWV17MX1bMC05XXs3fVtSXXsxfVtQTUNdezF9JCkiDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXgudHJhY3Rpb25fYmF0dGVyeV9jb2RlXzEuMC4wX0NvbXBvbmVudFR5cGVDaGFyYWN0ZXJzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJlbnVtIiA6IFsgInBhY2siLCAibW9kdWxlIiwgImNlbGwiIF0NCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC50cmFjdGlvbl9iYXR0ZXJ5X2NvZGVfMS4wLjBfVHJhY3Rpb25CYXR0ZXJ5Q29tcG9uZW50IiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBIGJhdHRlcnkgY29tcG9uZW50IGxpa2UgYSBjZWxsIG9yIGEgbW9kdWxlLiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgInRyYWN0aW9uQmF0dGVyeUNvZGUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUcmFjdGlvbiBCYXR0ZXJ5IENvZGUgaWRlbnRpZnlpbmcgYSBzaW5nbGUgdHJhY3Rpb24gYmF0dGVyeSBjb21wb25lbnQgbGlrZSBhIHBhY2ssIG1vZHVsZSBvciBjZWxsLiAiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXgudHJhY3Rpb25fYmF0dGVyeV9jb2RlXzEuMC4wX1RyYWN0aW9uQmF0dGVyeUNvZGVUcmFpdCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJzdWJjb21wb25lbnRzIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiU3ViY29tcG9uZW50cyBvZiB0aGUgY29tcG9uZW50LCBpZiBhcHBsaWNhYmxlLiBUaGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdHJhY3Rpb24gYmF0dGVyeSBjb2RlcyBhcmUgYXMgZm9sbG93czpcblxuSWYgdGhpcyB0cmFjdGlvbiBiYXR0ZXJ5IGNvZGUgaXMgZ2l2ZW4gZm9yIGEgY2VsbCBzdWJjb21wb25lbnRzIGFyZSBub3QgcmVxdWlyZWQuIFxuSWYgdGhpcyB0cmFjdGlvbiBiYXR0ZXJ5IGNvZGUgaXMgZ2l2ZW4gZm9yIGEgYmF0dGVyeSBtb2R1bGUgYSBsaXN0IG9mIGNlbGxzIGFyZSByZXF1aXJlZCB0byBiZSByZWdpc3RlcmVkIGFzIHN1YmNvbXBvbmVudHMuXG5JZiB0aGlzIHRyYWN0aW9uIGJhdHRlcnkgY29kZSBpcyBnaXZlbiBmb3IgYSBiYXR0ZXJ5IHBhY2sgYSBsaXN0IG9mIG1vZHVsZXMgYXJlIHJlcXVpcmVkIHRvIGJlIHJlZ2lzdGVyZWQgYXMgc3ViY29tcG9uZW50cyAoY29udGFpbmluZyBlYWNoIGEgbGlzdCBvZiBjZWxsIHN1YmNvbXBvbmVudHMgcmVzcGVjdGl2ZWx5KS4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXgudHJhY3Rpb25fYmF0dGVyeV9jb2RlXzEuMC4wX0NvbXBvbmVudExpc3QiDQogICAgICAgICAgfSwNCiAgICAgICAgICAicHJvZHVjdFR5cGUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgdHlwZSBvZiB0aGUgYmF0dGVyeSBjb21wb25lbnQsIGUuZy4gYSBwYWNrLCBhIG1vZHVsZSBvciBhIGNlbGwuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnRyYWN0aW9uX2JhdHRlcnlfY29kZV8xLjAuMF9Db21wb25lbnRUeXBlQ2hhcmFjdGVyc3RpYyINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJ0cmFjdGlvbkJhdHRlcnlDb2RlIiwgInByb2R1Y3RUeXBlIiBdDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXgudHJhY3Rpb25fYmF0dGVyeV9jb2RlXzEuMC4wX0NvbXBvbmVudExpc3QiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkEgbGlzdCBvZiBiYXR0ZXJ5IGNvbXBvbmVudHMgbGlrZSBtb2R1bGVzIG9yIGNlbGxzLiIsDQogICAgICAgICJ0eXBlIiA6ICJhcnJheSIsDQogICAgICAgICJpdGVtcyIgOiB7DQogICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXgudHJhY3Rpb25fYmF0dGVyeV9jb2RlXzEuMC4wX1RyYWN0aW9uQmF0dGVyeUNvbXBvbmVudCINCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgInByb3BlcnRpZXMiIDogew0KICAgICJ0cmFjdGlvbkJhdHRlcnlDb2RlIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiVHJhY3Rpb24gQmF0dGVyeSBDb2RlIGlkZW50aWZ5aW5nIGEgc2luZ2xlIHRyYWN0aW9uIGJhdHRlcnkgY29tcG9uZW50IGxpa2UgYSBwYWNrLCBtb2R1bGUgb3IgY2VsbC4gIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnRyYWN0aW9uX2JhdHRlcnlfY29kZV8xLjAuMF9UcmFjdGlvbkJhdHRlcnlDb2RlVHJhaXQiDQogICAgfSwNCiAgICAic3ViY29tcG9uZW50cyIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIlN1YmNvbXBvbmVudHMgb2YgdGhlIGNvbXBvbmVudCwgaWYgYXBwbGljYWJsZS4gVGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRyYWN0aW9uIGJhdHRlcnkgY29kZXMgYXJlIGFzIGZvbGxvd3M6XG5cbklmIHRoaXMgdHJhY3Rpb24gYmF0dGVyeSBjb2RlIGlzIGdpdmVuIGZvciBhIGNlbGwgc3ViY29tcG9uZW50cyBhcmUgbm90IHJlcXVpcmVkLiBcbklmIHRoaXMgdHJhY3Rpb24gYmF0dGVyeSBjb2RlIGlzIGdpdmVuIGZvciBhIGJhdHRlcnkgbW9kdWxlIGEgbGlzdCBvZiBjZWxscyBhcmUgcmVxdWlyZWQgdG8gYmUgcmVnaXN0ZXJlZCBhcyBzdWJjb21wb25lbnRzLlxuSWYgdGhpcyB0cmFjdGlvbiBiYXR0ZXJ5IGNvZGUgaXMgZ2l2ZW4gZm9yIGEgYmF0dGVyeSBwYWNrIGEgbGlzdCBvZiBtb2R1bGVzIGFyZSByZXF1aXJlZCB0byBiZSByZWdpc3RlcmVkIGFzIHN1YmNvbXBvbmVudHMgKGNvbnRhaW5pbmcgZWFjaCBhIGxpc3Qgb2YgY2VsbCBzdWJjb21wb25lbnRzIHJlc3BlY3RpdmVseSkuIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnRyYWN0aW9uX2JhdHRlcnlfY29kZV8xLjAuMF9Db21wb25lbnRMaXN0Ig0KICAgIH0sDQogICAgInByb2R1Y3RUeXBlIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHR5cGUgb2YgdGhlIGJhdHRlcnkgY29tcG9uZW50LCBlLmcuIGEgcGFjaywgYSBtb2R1bGUgb3IgYSBjZWxsLiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC50cmFjdGlvbl9iYXR0ZXJ5X2NvZGVfMS4wLjBfQ29tcG9uZW50VHlwZUNoYXJhY3RlcnN0aWMiDQogICAgfQ0KICB9LA0KICAicmVxdWlyZWQiIDogWyAidHJhY3Rpb25CYXR0ZXJ5Q29kZSIsICJwcm9kdWN0VHlwZSIgXQ0KfQ== + # urn:samm:io.catenax.batch:2.0.0#Batch + dXJuOnNhbW06aW8uY2F0ZW5heC5iYXRjaDoyLjAuMCNCYXRjaA: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIkEgYmF0Y2ggaXMgYSBxdWFudGl0eSBvZiAoc2VtaS0pIGZpbmlzaGVkIHByb2R1Y3RzIG9yIChyYXcpIG1hdGVyaWFsIHByb2R1Y3QgdGhhdCBoYXZlIGJlZW4gcHJvZHVjZWQgdW5kZXIgdGhlIHNhbWUgY2lyY3Vtc3RhbmNlcyAoZS5nLiBzYW1lIHByb2R1Y3Rpb24gbG9jYXRpb24pLCBhcyBzcGVjaWZpZWQgZ3JvdXBzIG9yIGFtb3VudHMsIHdpdGhpbiBhIGNlcnRhaW4gdGltZSBmcmFtZS4gRXZlcnkgYmF0Y2ggY2FuIGRpZmZlciBpbiB0aGUgbnVtYmVyIG9yIGFtb3VudCBvZiBwcm9kdWN0cy4gRGlmZmVyZW50IGJhdGNoZXMgY2FuIGhhdmUgdmFyaWVkIHNwZWNpZmljYXRpb25zLCBlLmcuLCBkaWZmZXJlbnQgY29sb3JzLiBBIGJhdGNoIGlzIGlkZW50aWZpZWQgdmlhIGEgQmF0Y2ggSUQuIiwNCiAgInR5cGUiIDogIm9iamVjdCIsDQogICJjb21wb25lbnRzIiA6IHsNCiAgICAic2NoZW1hcyIgOiB7DQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5iYXRjaF8yLjAuMF9DYXRlbmFYSWRUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwcm92aWRlZCByZWd1bGFyIGV4cHJlc3Npb24gZW5zdXJlcyB0aGF0IHRoZSBVVUlEIGlzIGNvbXBvc2VkIG9mIGZpdmUgZ3JvdXBzIG9mIGNoYXJhY3RlcnMgc2VwYXJhdGVkIGJ5IGh5cGhlbnMsIGluIHRoZSBmb3JtIDgtNC00LTQtMTIgZm9yIGEgdG90YWwgb2YgMzYgY2hhcmFjdGVycyAoMzIgaGV4YWRlY2ltYWwgY2hhcmFjdGVycyBhbmQgNCBoeXBoZW5zKSwgb3B0aW9uYWxseSBwcmVmaXhlZCBieSBcInVybjp1dWlkOlwiIHRvIG1ha2UgaXQgYW4gSVJJLiIsDQogICAgICAgICJwYXR0ZXJuIiA6ICIoXlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQpfChedXJuOnV1aWQ6WzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCkiDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguYmF0Y2hfMi4wLjBfS2V5VHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDb25zdHJhaW50IHRoYXQgZW5zdXJlcyB0aGF0IHRoZSBwcmVkZWZpbmVkIGtleXMgYXJlIHVzZWQuIiwNCiAgICAgICAgInBhdHRlcm4iIDogIl4obWFudWZhY3R1cmVySWR8YmF0Y2hJZCkkIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzIuMC4wX1ZhbHVlQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgdmFsdWUgb2YgYW4gaWRlbnRpZmllci4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguYmF0Y2hfMi4wLjBfS2V5VmFsdWVMaXN0IiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBIGxpc3Qgb2Yga2V5IHZhbHVlIHBhaXJzIGZvciBsb2NhbCBpZGVudGlmaWVycywgd2hpY2ggYXJlIGNvbXBvc2VkIG9mIGEga2V5IGFuZCBhIGNvcnJlc3BvbmRpbmcgdmFsdWUuIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAia2V5IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGtleSBvZiBhIGxvY2FsIGlkZW50aWZpZXIuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzIuMC4wX0tleVRyYWl0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgInZhbHVlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHZhbHVlIG9mIGFuIGlkZW50aWZpZXIuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzIuMC4wX1ZhbHVlQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicmVxdWlyZWQiIDogWyAia2V5IiwgInZhbHVlIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguYmF0Y2hfMi4wLjBfTG9jYWxJZGVudGlmaWVyQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkEgYmF0Y2ggbWF5IGhhdmUgbXVsdGlwbGUgYXR0cmlidXRlcywgd2hpY2ggdW5pcXVlbHkgaWRlbnRpZnkgdGhhdCBiYXRjaCBpbiBhIHNwZWNpZmljIGRhdGFzcGFjZSAoZS5nLiB0aGUgbWFudWZhY3R1cmVyYHMgZGF0YXNwYWNlKSIsDQogICAgICAgICJ0eXBlIiA6ICJhcnJheSIsDQogICAgICAgICJpdGVtcyIgOiB7DQogICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguYmF0Y2hfMi4wLjBfS2V5VmFsdWVMaXN0Ig0KICAgICAgICB9LA0KICAgICAgICAidW5pcXVlSXRlbXMiIDogdHJ1ZQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGltZXN0YW1wIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJwYXR0ZXJuIiA6ICItPyhbMS05XVswLTldezMsfXwwWzAtOV17M30pLSgwWzEtOV18MVswLTJdKS0oMFsxLTldfFsxMl1bMC05XXwzWzAxXSlUKChbMDFdWzAtOV18MlswLTNdKTpbMC01XVswLTldOlswLTVdWzAtOV0oXFwuWzAtOV0rKT98KDI0OjAwOjAwKFxcLjArKT8pKShafChcXCt8LSkoKDBbMC05XXwxWzAtM10pOlswLTVdWzAtOV18MTQ6MDApKT8iLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkRlc2NyaWJlcyBhIFByb3BlcnR5IHdoaWNoIGNvbnRhaW5zIHRoZSBkYXRlIGFuZCB0aW1lIHdpdGggYW4gb3B0aW9uYWwgdGltZXpvbmUuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzIuMC4wX1Byb2R1Y3Rpb25Db3VudHJ5Q29kZVRyYWl0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUmVndWxhciBFeHByZXNzaW9uIHRoYXQgZW5zdXJlcyBhIHRocmVlLWxldHRlciBjb2RlIiwNCiAgICAgICAgInBhdHRlcm4iIDogIl5bQS1aXXszfSQiDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguYmF0Y2hfMi4wLjBfTWFudWZhY3R1cmluZ0NoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyB0byBkZXNjcmliZSBtYW51ZmFjdHVyaW5nIHJlbGF0ZWQgZGF0YSIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImRhdGUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaW1lc3RhbXAgb2YgdGhlIG1hbnVmYWN0dXJpbmcgZGF0ZSBhcyB0aGUgZmluYWwgc3RlcCBpbiBwcm9kdWN0aW9uIHByb2Nlc3MgKGUuZy4gZmluYWwgcXVhbGl0eSBjaGVjaywgcmVhZHktZm9yLXNoaXBtZW50IGV2ZW50KSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RpbWVzdGFtcCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjb3VudHJ5IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ291bnRyeSBjb2RlIHdoZXJlIHRoZSBwYXJ0IHdhcyBtYW51ZmFjdHVyZWQiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguYmF0Y2hfMi4wLjBfUHJvZHVjdGlvbkNvdW50cnlDb2RlVHJhaXQiDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicmVxdWlyZWQiIDogWyAiZGF0ZSIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzIuMC4wX1BhcnRJZENoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHBhcnQgSUQgaXMgYSBtdWx0aS1jaGFyYWN0ZXIgc3RyaW5nLCB1c3VzYWxseSBhc3NpZ25lZCBieSBhbiBFUlAgc3lzdGVtIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzIuMC4wX1BhcnROYW1lQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJQYXJ0IE5hbWUgaW4gc3RyaW5nIGZvcm1hdCBmcm9tIHRoZSByZXNwZWN0aXZlIHN5c3RlbSBpbiB0aGUgdmFsdWUgY2hhaW4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguYmF0Y2hfMi4wLjBfQ2xhc3NpZmljYXRpb25DaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkEgcGFydCB0eXBlIG11c3QgYmUgcGxhY2VkIGludG8gb25lIG9mIHRoZSBmb2xsb3dpbmcgY2xhc3NlczogJ2NvbXBvbmVudCcsICdwcm9kdWN0JywgJ3NvZnR3YXJlJywgJ2Fzc2VtYmx5JywgJ3Rvb2wnLCBvciAncmF3IG1hdGVyaWFsJy4iLA0KICAgICAgICAiZW51bSIgOiBbICJwcm9kdWN0IiwgInJhdyBtYXRlcmlhbCIsICJzb2Z0d2FyZSIsICJhc3NlbWJseSIsICJ0b29sIiwgImNvbXBvbmVudCIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzIuMC4wX1BhcnRUeXBlSW5mb3JtYXRpb25DaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgcGFydCB0eXBlIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAibWFudWZhY3R1cmVyUGFydElkIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUGFydCBJRCBhcyBhc3NpZ25lZCBieSB0aGUgbWFudWZhY3R1cmVyIG9mIHRoZSBwYXJ0LiBUaGUgUGFydCBJRCBpZGVudGlmaWVzIHRoZSBwYXJ0IChhcyBkZXNpZ25lZCkgaW4gdGhlIG1hbnVmYWN0dXJlcmBzIGRhdGFzcGFjZS4gVGhlIFBhcnQgSUQgZG9lcyBub3QgcmVmZXJlbmNlIGEgc3BlY2lmaWMgaW5zdGFuY2Ugb2YgYSBwYXJ0IGFuZCB0aHVzIHNob3VsZCBub3QgYmUgY29uZnVzZWQgd2l0aCB0aGUgc2VyaWFsIG51bWJlciBvciBiYXRjaCBudW1iZXIuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzIuMC4wX1BhcnRJZENoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgIm5hbWVBdE1hbnVmYWN0dXJlciIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIk5hbWUgb2YgdGhlIHBhcnQgYXMgYXNzaWduZWQgYnkgdGhlIG1hbnVmYWN0dXJlciIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5iYXRjaF8yLjAuMF9QYXJ0TmFtZUNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgImNsYXNzaWZpY2F0aW9uIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGNsYXNzaWZpY2F0aW9uIG9mIHRoZSBwYXJ0IHR5cGUgYWNjb3JkaW5nIHRvIFNURVAgc3RhbmRhcmQgZGVmaW5pdGlvbiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5iYXRjaF8yLjAuMF9DbGFzc2lmaWNhdGlvbkNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgIm1hbnVmYWN0dXJlclBhcnRJZCIsICJuYW1lQXRNYW51ZmFjdHVyZXIiLCAiY2xhc3NpZmljYXRpb24iIF0NCiAgICAgIH0NCiAgICB9DQogIH0sDQogICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAiY2F0ZW5hWElkIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGZ1bGx5IGFub255bW91cyBDYXRlbmEtWCBJRCBvZiB0aGUgYmF0Y2gsIHZhbGlkIGZvciB0aGUgQ2F0ZW5hLVggZGF0YXNwYWNlLiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5iYXRjaF8yLjAuMF9DYXRlbmFYSWRUcmFpdCINCiAgICB9LA0KICAgICJsb2NhbElkZW50aWZpZXJzIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBsb2NhbCBpZGVudGlmaWVyIGVuYWJsZXMgaWRlbnRpZmljYXRpb24gb2YgYSBwYXJ0IGluIGEgc3BlY2lmaWMgZGF0YXNwYWNlLCBidXQgaXMgbm90IHVuaXF1ZSBpbiBDYXRlbmEtWCBkYXRhc3BhY2UuIE11bHRpcGxlIGxvY2FsIGlkZW50aWZpZXJzIG1heSBleGlzdC4iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguYmF0Y2hfMi4wLjBfTG9jYWxJZGVudGlmaWVyQ2hhcmFjdGVyaXN0aWMiDQogICAgfSwNCiAgICAibWFudWZhY3R1cmluZ0luZm9ybWF0aW9uIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiSW5mb3JtYXRpb24gZnJvbSBtYW51ZmFjdHVyaW5nIHByb2Nlc3MsIHN1Y2ggYXMgbWFudWZhY3R1cmluZyBkYXRlIGFuZCBtYW51ZmFjdHVyaW5nIGNvdW50cnkiLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguYmF0Y2hfMi4wLjBfTWFudWZhY3R1cmluZ0NoYXJhY3RlcmlzdGljIg0KICAgIH0sDQogICAgInBhcnRUeXBlSW5mb3JtYXRpb24iIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcGFydCB0eXBlIG9mIHdoaWNoIHRoZSBiYXRjaCBoYXMgYmVlbiBpbnN0YW50aWF0ZWQgb2YuIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmJhdGNoXzIuMC4wX1BhcnRUeXBlSW5mb3JtYXRpb25DaGFyYWN0ZXJpc3RpYyINCiAgICB9DQogIH0sDQogICJyZXF1aXJlZCIgOiBbICJjYXRlbmFYSWQiLCAibG9jYWxJZGVudGlmaWVycyIsICJtYW51ZmFjdHVyaW5nSW5mb3JtYXRpb24iLCAicGFydFR5cGVJbmZvcm1hdGlvbiIgXQ0KfQ== + # urn:samm:io.catenax.just_in_sequence_part:1.0.0#JustInSequencePart + dXJuOnNhbW06aW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnQ6MS4wLjAjSnVzdEluU2VxdWVuY2VQYXJ0: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIkEganVzdC1pbi1zZXF1ZW5jZSBwYXJ0IGlzIGFuIGluc3RhbnRpYXRpb24gb2YgYSAoZGVzaWduLSkgcGFydCwgd2hlcmUgdGhlIHBhcnRpY3VsYXIgaW5zdGFudGlhdGlvbiBjYW4gYmUgdW5pcXVlbHkgaWRlbnRpZmllZCBieSBtZWFucyBvZiBhIGNvbWJpbmF0aW9uIG9mIHNldmVyYWwgSURzIHJlbGF0ZWQgdG8gYSBqdXN0LWluLXNlcXVlbmNlIHByb2Nlc3MuIiwNCiAgInR5cGUiIDogIm9iamVjdCIsDQogICJjb21wb25lbnRzIiA6IHsNCiAgICAic2NoZW1hcyIgOiB7DQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMS4wLjBfQ2F0ZW5hWElkVHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcHJvdmlkZWQgcmVndWxhciBleHByZXNzaW9uIGVuc3VyZXMgdGhhdCB0aGUgVVVJRCBpcyBjb21wb3NlZCBvZiBmaXZlIGdyb3VwcyBvZiBjaGFyYWN0ZXJzIHNlcGFyYXRlZCBieSBoeXBoZW5zLCBpbiB0aGUgZm9ybSA4LTQtNC00LTEyIGZvciBhIHRvdGFsIG9mIDM2IGNoYXJhY3RlcnMgKDMyIGhleGFkZWNpbWFsIGNoYXJhY3RlcnMgYW5kIDQgaHlwaGVucyksIG9wdGlvbmFsbHkgcHJlZml4ZWQgYnkgXCJ1cm46dXVpZDpcIiB0byBtYWtlIGl0IGFuIElSSS4iLA0KICAgICAgICAicGF0dGVybiIgOiAiKF5bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kKXwoXnVybjp1dWlkOlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQpIg0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4Lmp1c3RfaW5fc2VxdWVuY2VfcGFydF8xLjAuMF9LZXlDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBrZXkgY2hhcmFjdGVyaXN0aWMgb2YgYSBsb2NhbCBpZGVudGlmaWVyLiBBIHNwZWNpZmljIHN1YnNldCBvZiBrZXlzIGlzIHByZWRlZmluZWQsIGJ1dCBhZGRpdGlvbmFsbHkgYW55IG90aGVyIGN1c3RvbSBrZXkgaXMgYWxsb3dlZC4gUHJlZGVmaW5lZCBrZXlzICh0byBiZSB1c2VkIHdoZW4gYXBwbGljYWJsZSk6XG4tIFwibWFudWZhY3R1cmVySWRcIiAtIFRoZSBCdXNpbmVzcyBQYXJ0bmVyIE51bWJlciAoQlBOKSBvZiB0aGUgbWFudWZhY3R1cmVyLiBWYWx1ZTogQlBOLU51bW1lclxuLSBcImppc051bWJlclwiIC0gYSBudW1iZXIgdGhhdCBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBjYWxsLW9mZiB0aGF0IGNhbiBiZSBhc3N1bWVkIHVuaXF1ZSB3aXRoaW4gdGhlIHNwZWNpZmljIGp1c3QtaW4tc2VxdWVuY2UgcHJvY2Vzcy4gVGhpcyBpcyB0eXBpY2FsbHkgbm90IHRoZSBzZXF1ZW5jZSBudW1iZXIsIGJ1dCB0aGUgY2FsbC1vZmYgbnVtYmVyLlxuLSBcImppc0NhbGxEYXRlXCIgdGhlIGRhdGUgb2YgdGhlIGp1c3QtaW4tc2VxdWVuY2UgY2FsbC1vZmYgYXMgc3RhdGVkIG9uIHRoZSBjYWxsLW9mZiBkb2N1bWVudCBpdHNlbGYuIFZhbHVlOiBmb2xsb3dpbmcgdGhlIElTTyA4NjAxIGZvcm1hdCBhcyBmb2xsb3dzOiBcIllZWVktTU0tRERcIiBvciBcIllZWVktTU0tRERUaGg6bW06c3NcIiBvciBcIllZWVktTU0tRERUaGg6bW06c3OxaGg6bW1cIlxuLSBcInBhcmVudE9yZGVyTnVtYmVyXCIgLSBhIG51bWJlciBpZGVudGlmeWluZyB0aGUganVzdC1pbi1zZXF1ZW5jZS0gcGFydCdzIGRlc3RpbmF0aW9uIHBhcmVudCBwYXJ0LiBUaGUgcGFyZW50IHBhcnQgaXMgdHlwaWNhbGx5IGtub3duIHVwZnJvbnQgdG8gdGhlIHN1cHBsaWVyIGZvciBqdXN0LWluLXNlcXVlbmNlIHBhcnRzLiBUaGlzIG1pZ2h0IGJlIGEgdGVtcG9yYXJ5IHVuaXF1ZSBpZGVudGlmaWVyLlxuTm90IGFsbCBrZXlzIG1pZ2h0IGJlIHJlbGV2YW50IGZvciBhbGwganVzdC1pbi1zZXF1ZW5jZSBwYXJ0cy4gSXQgbXVzdCBiZSBlbnN1cmVkIHRoYXQgYSBjb21iaW5hdGlvbiBvZiB0aGVzZSBpZGVudGlmaWVycyBhbmQgdGhlIG9wdGlvbmFsIG1hbnVmYWN0dXJlciBwYXJ0IElEIG9yIGN1c3RvbWVyIHBhcnQgSUQgbGVhZHMgdG8gYSB1bmlxdWUganVzdC1pbi1zZXF1ZW5jZSBwYXJ0LiINCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMS4wLjBfVmFsdWVDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSB2YWx1ZSBvZiBhbiBpZGVudGlmaWVyLiINCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMS4wLjBfS2V5VmFsdWVMaXN0IiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBIGxpc3Qgb2Yga2V5IHZhbHVlIHBhaXJzIGZvciBsb2NhbCBpZGVudGlmaWVycywgd2hpY2ggYXJlIGNvbXBvc2VkIG9mIGEga2V5IGFuZCBhIGNvcnJlc3BvbmRpbmcgdmFsdWUuIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAia2V5IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGtleSBvZiBhIGxvY2FsIGlkZW50aWZpZXIuICIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMS4wLjBfS2V5Q2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAidmFsdWUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgdmFsdWUgb2YgYW4gaWRlbnRpZmllci4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguanVzdF9pbl9zZXF1ZW5jZV9wYXJ0XzEuMC4wX1ZhbHVlQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicmVxdWlyZWQiIDogWyAia2V5IiwgInZhbHVlIiBdDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguanVzdF9pbl9zZXF1ZW5jZV9wYXJ0XzEuMC4wX0xvY2FsSWRlbnRpZmllckNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBIHNpbmdsZSBqdXN0LWluLXNlcXVlbmNlIHBhcnQgbWF5IGhhdmUgbXVsdGlwbGUgYXR0cmlidXRlcywgdGhhdCB1bmlxdWVseSBpZGVudGlmeSBhIHRoYXQgcGFydCBpbiBhIHNwZWNpZmljIGRhdGFzcGFjZSAoZS5nLiB0aGUgbWFudWZhY3R1cmVyYHMgZGF0YXNwYWNlKSIsDQogICAgICAgICJ0eXBlIiA6ICJhcnJheSIsDQogICAgICAgICJpdGVtcyIgOiB7DQogICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguanVzdF9pbl9zZXF1ZW5jZV9wYXJ0XzEuMC4wX0tleVZhbHVlTGlzdCINCiAgICAgICAgfSwNCiAgICAgICAgInVuaXF1ZUl0ZW1zIiA6IHRydWUNCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8ub3Blbm1hbnVmYWN0dXJpbmdfY2hhcmFjdGVyaXN0aWNfMi4wLjBfVGltZXN0YW1wIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJwYXR0ZXJuIiA6ICItPyhbMS05XVswLTldezMsfXwwWzAtOV17M30pLSgwWzEtOV18MVswLTJdKS0oMFsxLTldfFsxMl1bMC05XXwzWzAxXSlUKChbMDFdWzAtOV18MlswLTNdKTpbMC01XVswLTldOlswLTVdWzAtOV0oXFwuWzAtOV0rKT98KDI0OjAwOjAwKFxcLjArKT8pKShafChcXCt8LSkoKDBbMC05XXwxWzAtM10pOlswLTVdWzAtOV18MTQ6MDApKT8iLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkRlc2NyaWJlcyBhIFByb3BlcnR5IHdoaWNoIGNvbnRhaW5zIHRoZSBkYXRlIGFuZCB0aW1lIHdpdGggYW4gb3B0aW9uYWwgdGltZXpvbmUuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4Lmp1c3RfaW5fc2VxdWVuY2VfcGFydF8xLjAuMF9Qcm9kdWN0aW9uQ291bnRyeUNvZGVUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlJlZ3VsYXIgRXhwcmVzc2lvbiB0aGF0IGVuc3VyZXMgYSB0aHJlZS1sZXR0ZXIgY29kZSAiLA0KICAgICAgICAicGF0dGVybiIgOiAiXltBLVpdW0EtWl1bQS1aXSQiDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguanVzdF9pbl9zZXF1ZW5jZV9wYXJ0XzEuMC4wX01hbnVmYWN0dXJpbmdDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ2hhcmFjdGVyaXN0aWMgdG8gZGVzY3JpYmUgbWFudWZhY3R1cmluZyByZWxhdGVkIGRhdGEiLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJkYXRlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGltZXN0YW1wIG9mIHRoZSBtYW51ZmFjdHVyaW5nIGRhdGUgYXMgdGhlIGZpbmFsIHN0ZXAgaW4gcHJvZHVjdGlvbiBwcm9jZXNzIChlLmcuIGZpbmFsIHF1YWxpdHkgY2hlY2ssIHJlYWR5LWZvci1zaGlwbWVudCBldmVudCkiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLm9wZW5tYW51ZmFjdHVyaW5nX2NoYXJhY3RlcmlzdGljXzIuMC4wX1RpbWVzdGFtcCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjb3VudHJ5IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ291bnRyeSBjb2RlIHdoZXJlIHRoZSBwYXJ0IHdhcyBtYW51ZmFjdHVyZWQiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguanVzdF9pbl9zZXF1ZW5jZV9wYXJ0XzEuMC4wX1Byb2R1Y3Rpb25Db3VudHJ5Q29kZVRyYWl0Ig0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgImRhdGUiIF0NCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMS4wLjBfUGFydElkQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcGFydCBJRCBpcyBhIG11bHRpLWNoYXJhY3RlciBzdHJpbmcsIHVzdWFsbHkgYXNzaWduZWQgYnkgYW4gRVJQIHN5c3RlbS4gQWx0ZXJuYXRpdmVseSB0aGUgSUQgb2YgdGhlIHBhcnQgZmFtaWx5IGNhbiBiZSB1c2VkIGlmIG5vIHNwZWNpZmljIHBhcnQgSUQgZXhpc3RzLiINCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMS4wLjBfUGFydE5hbWVDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlBhcnQgTmFtZSBpbiBzdHJpbmcgZm9ybWF0IGZyb20gdGhlIHJlc3BlY3RpdmUgc3lzdGVtIGluIHRoZSB2YWx1ZSBjaGFpbiINCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMS4wLjBfQ2xhc3NpZmljYXRpb25DaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkEgcGFydCB0eXBlIG11c3QgYmUgcGxhY2VkIGludG8gb25lIG9mIHRoZSBmb2xsb3dpbmcgY2xhc3NlczogJ2NvbXBvbmVudCcsICdwcm9kdWN0JywgJ3NvZnR3YXJlJywgJ2Fzc2VtYmx5JywgJ3Rvb2wnLCBvciAncmF3IG1hdGVyaWFsJy4iLA0KICAgICAgICAiZW51bSIgOiBbICJwcm9kdWN0IiwgInJhdyBtYXRlcmlhbCIsICJzb2Z0d2FyZSIsICJhc3NlbWJseSIsICJ0b29sIiwgImNvbXBvbmVudCIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4Lmp1c3RfaW5fc2VxdWVuY2VfcGFydF8xLjAuMF9QYXJ0VHlwZUluZm9ybWF0aW9uQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIHBhcnQgdHlwZSIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgIm1hbnVmYWN0dXJlclBhcnRJZCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlBhcnQgSUQgYXMgYXNzaWduZWQgYnkgdGhlIG1hbnVmYWN0dXJlciBvZiB0aGUgcGFydC4gVGhlIG1hbnVmYWN0dXJlciBQYXJ0IElEIGlkZW50aWZpZXMgdGhlIHBhcnQgKGFzIGRlc2lnbmVkKSBpbiB0aGUgbWFudWZhY3R1cmVyYHMgZGF0YXNwYWNlLiBUaGUgUGFydCBJRCBkb2VzIG5vdCByZWZlcmVuY2UgYSBzcGVjaWZpYyBpbnN0YW5jZSBvZiBhIHBhcnQgYW5kIHRodXMgc2hvdWxkIG5vdCBiZSBjb25mdXNlZCB3aXRoIHRoZSBzZXJpYWwgbnVtYmVyIG9yIGFueSBvdGhlciBpbnN0YW5jZSBJRHMuIFxuSWYgbm8gc3BlY2lmaWMgcGFydCBJRCBleGlzdHMgYSBwYXJ0IGZhbWlseSBJRCBtYXkgYmUgc3Vic3RpdHV0ZWQgZm9yIGl0LiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMS4wLjBfUGFydElkQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY3VzdG9tZXJQYXJ0SWQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJQYXJ0IElEIGFzIGFzc2lnbmVkIGJ5IHRoZSBjdXN0b21lciBvZiB0aGUgcGFydC4gVGhlIGN1c3RvbWVyIFBhcnQgSUQgaWRlbnRpZmllcyB0aGUgcGFydCAoYXMgZGVzaWduZWQpIGluIHRoZSBjdXN0b21lcmBzIGRhdGFzcGFjZS4gVGhlIFBhcnQgSUQgZG9lcyBub3QgcmVmZXJlbmNlIGEgc3BlY2lmaWMgaW5zdGFuY2Ugb2YgYSBwYXJ0IGFuZCB0aHVzIHNob3VsZCBub3QgYmUgY29uZnVzZWQgd2l0aCB0aGUgc2VyaWFsIG51bWJlciBvciBhbnkgb3RoZXIgaW5zdGFuY2UgSURzLiBcbklmIG5vIHNwZWNpZmljIHBhcnQgSUQgZXhpc3RzIGEgcGFydCBmYW1pbHkgSUQgbWF5IGJlIHN1YnN0aXR1dGVkIGZvciBpdC5cbiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMS4wLjBfUGFydElkQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAibmFtZUF0TWFudWZhY3R1cmVyIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiTmFtZSBvZiB0aGUgcGFydCBhcyBhc3NpZ25lZCBieSB0aGUgbWFudWZhY3R1cmVyIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4Lmp1c3RfaW5fc2VxdWVuY2VfcGFydF8xLjAuMF9QYXJ0TmFtZUNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgIm5hbWVBdEN1c3RvbWVyIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiTmFtZSBvZiB0aGUgcGFydCBhcyBhc3NpZ25lZCBieSB0aGUgY3VzdG9tZXIiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguanVzdF9pbl9zZXF1ZW5jZV9wYXJ0XzEuMC4wX1BhcnROYW1lQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY2xhc3NpZmljYXRpb24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgY2xhc3NpZmljYXRpb24gb2YgdGhlIHBhcnQgdHlwZSBhY2NvcmRpbmcgdG8gU1RFUCBzdGFuZGFyZCBkZWZpbml0aW9uIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4Lmp1c3RfaW5fc2VxdWVuY2VfcGFydF8xLjAuMF9DbGFzc2lmaWNhdGlvbkNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgIm5hbWVBdE1hbnVmYWN0dXJlciIsICJjbGFzc2lmaWNhdGlvbiIgXQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgInByb3BlcnRpZXMiIDogew0KICAgICJjYXRlbmFYSWQiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgZnVsbHkgYW5vbnltb3VzIENhdGVuYS1YIElEIG9mIHRoZSBqdXN0LWluLXNlcXVlbmNlIHBhcnQsIHZhbGlkIGZvciB0aGUgQ2F0ZW5hLVggZGF0YXNwYWNlLiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMS4wLjBfQ2F0ZW5hWElkVHJhaXQiDQogICAgfSwNCiAgICAibG9jYWxJZGVudGlmaWVycyIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIkEgbG9jYWwgaWRlbnRpZmllciBlbmFibGVzIGlkZW50aWZpY2F0aW9uIG9mIGEgcGFydCBpbiBhIHNwZWNpZmljIGRhdGFzcGFjZSwgYnV0IGlzIG5vdCB1bmlxdWUgaW4gQ2F0ZW5hLVggZGF0YXNwYWNlLiBNdWx0aXBsZSBsb2NhbCBpZGVudGlmaWVycyBtYXkgZXhpc3QuIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4Lmp1c3RfaW5fc2VxdWVuY2VfcGFydF8xLjAuMF9Mb2NhbElkZW50aWZpZXJDaGFyYWN0ZXJpc3RpYyINCiAgICB9LA0KICAgICJtYW51ZmFjdHVyaW5nSW5mb3JtYXRpb24iIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJJbmZvcm1hdGlvbiBmcm9tIG1hbnVmYWN0dXJpbmcgcHJvY2Vzcywgc3VjaCBhcyBtYW51ZmFjdHVyaW5nIGRhdGUgYW5kIG1hbnVmYWN0dXJpbmcgY291bnRyeSIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5qdXN0X2luX3NlcXVlbmNlX3BhcnRfMS4wLjBfTWFudWZhY3R1cmluZ0NoYXJhY3RlcmlzdGljIg0KICAgIH0sDQogICAgInBhcnRUeXBlSW5mb3JtYXRpb24iIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcGFydCB0eXBlIG9yIHBhcnQgZmFtaWx5IGZyb20gd2hpY2ggdGhlIGp1c3QtaW4tc2VxdWVuY2UgcGFydCBoYXMgYmVlbiBpbnN0YW50aWF0ZWQuIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4Lmp1c3RfaW5fc2VxdWVuY2VfcGFydF8xLjAuMF9QYXJ0VHlwZUluZm9ybWF0aW9uQ2hhcmFjdGVyaXN0aWMiDQogICAgfQ0KICB9LA0KICAicmVxdWlyZWQiIDogWyAiY2F0ZW5hWElkIiwgImxvY2FsSWRlbnRpZmllcnMiLCAibWFudWZhY3R1cmluZ0luZm9ybWF0aW9uIiwgInBhcnRUeXBlSW5mb3JtYXRpb24iIF0NCn0= + # urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned + dXJuOnNhbW06aW8uY2F0ZW5heC5wYXJ0X2FzX3BsYW5uZWQ6MS4wLjEjUGFydEFzUGxhbm5lZA: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIkEgUGFydCBhcyBQbGFubmVkIHJlcHJlc2VudHMgYW4gaXRlbSBpbiB0aGUgQ2F0ZW5hLVggQmlsbCBvZiBNYXRlcmlhbCAoQk9NKSBpbiBBcy1QbGFubmVkIGxpZmVjeWNsZSBzdGF0dXMgaW4gYSBzcGVjaWZpYyB2ZXJzaW9uLiAiLA0KICAidHlwZSIgOiAib2JqZWN0IiwNCiAgImNvbXBvbmVudHMiIDogew0KICAgICJzY2hlbWFzIiA6IHsNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnBhcnRfYXNfcGxhbm5lZF8xLjAuMV9DYXRlbmFYSWRUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwcm92aWRlZCByZWd1bGFyIGV4cHJlc3Npb24gZW5zdXJlcyB0aGF0IHRoZSBVVUlEIGlzIGNvbXBvc2VkIG9mIGZpdmUgZ3JvdXBzIG9mIGNoYXJhY3RlcnMgc2VwYXJhdGVkIGJ5IGh5cGhlbnMsIGluIHRoZSBmb3JtIDgtNC00LTQtMTIgZm9yIGEgdG90YWwgb2YgMzYgY2hhcmFjdGVycyAoMzIgaGV4YWRlY2ltYWwgY2hhcmFjdGVycyBhbmQgNCBoeXBoZW5zKS4iLA0KICAgICAgICAicGF0dGVybiIgOiAiKF5bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kKXwoXnVybjp1dWlkOlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQpIg0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnBhcnRfYXNfcGxhbm5lZF8xLjAuMV9QYXJ0SWRDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwYXJ0IElEIGlzIGEgbXVsdGktY2hhcmFjdGVyIHN0cmluZywgdXN1c2FsbHkgYXNzaWduZWQgYnkgYW4gRVJQIHN5c3RlbSINCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5wYXJ0X2FzX3BsYW5uZWRfMS4wLjFfUGFydE5hbWVDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlBhcnQgTmFtZSBpbiBzdHJpbmcgZm9ybWF0IGZyb20gdGhlIHJlc3BlY3RpdmUgc3lzdGVtIGluIHRoZSB2YWx1ZSBjaGFpbiINCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5wYXJ0X2FzX3BsYW5uZWRfMS4wLjFfQ2xhc3NpZmljYXRpb25FbnVtZXJhdGlvbkNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBwYXJ0IHR5cGUgbXVzdCBiZSBwbGFjZWQgaW50byBvbmUgb2YgdGhlIGZvbGxvd2luZyBjbGFzc2VzOiAnY29tcG9uZW50JywgJ3Byb2R1Y3QnLCAnc29mdHdhcmUnLCDigJhhc3NlbWJseeKAmSwgJ3Rvb2wnLCBvciAncmF3IG1hdGVyaWFsJy4iLA0KICAgICAgICAiZW51bSIgOiBbICJwcm9kdWN0IiwgInJhdyBtYXRlcmlhbCIsICJzb2Z0d2FyZSIsICJhc3NlbWJseSIsICJ0b29sIiwgImNvbXBvbmVudCIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnBhcnRfYXNfcGxhbm5lZF8xLjAuMV9QYXJ0VHlwZUluZm9ybWF0aW9uQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIHBhcnQgdHlwZSIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgIm1hbnVmYWN0dXJlclBhcnRJZCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlBhcnQgSUQgYXMgYXNzaWduZWQgYnkgdGhlIG1hbnVmYWN0dXJlciBvZiB0aGUgcGFydC4gVGhlIFBhcnQgSUQgaWRlbnRpZmllcyB0aGUgcGFydCBpbiB0aGUgbWFudWZhY3R1cmVyYHMgZGF0YXNwYWNlLiBUaGUgUGFydCBJRCByZWZlcmVuY2VzIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBhIHBhcnQuIFRoZSB2ZXJzaW9uIG51bWJlciBtdXN0IGJlIGluY2x1ZGVkIGluIHRoZSBQYXJ0IElEIGlmIGl0IGlzIGF2YWlsYWJsZS5cblxuVGhlIFBhcnQgSUQgZG9lcyBub3QgcmVmZXJlbmNlIGEgc3BlY2lmaWMgaW5zdGFuY2Ugb2YgYSBwYXJ0IGFuZCBtdXN0IG5vdCBiZSBjb25mdXNlZCB3aXRoIHRoZSBzZXJpYWwgbnVtYmVyLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5wYXJ0X2FzX3BsYW5uZWRfMS4wLjFfUGFydElkQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAibmFtZUF0TWFudWZhY3R1cmVyIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiTmFtZSBvZiB0aGUgcGFydCBhcyBhc3NpZ25lZCBieSB0aGUgbWFudWZhY3R1cmVyIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnBhcnRfYXNfcGxhbm5lZF8xLjAuMV9QYXJ0TmFtZUNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgImNsYXNzaWZpY2F0aW9uIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGNsYXNzaWZpY2F0aW9uIG9mIHRoZSBwYXJ0IHR5cGUgYWNjb3JkaW5nIHRvIFNURVAgc3RhbmRhcmQgZGVmaW5pdGlvbiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5wYXJ0X2FzX3BsYW5uZWRfMS4wLjFfQ2xhc3NpZmljYXRpb25FbnVtZXJhdGlvbkNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgIm1hbnVmYWN0dXJlclBhcnRJZCIsICJuYW1lQXRNYW51ZmFjdHVyZXIiLCAiY2xhc3NpZmljYXRpb24iIF0NCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8ub3Blbm1hbnVmYWN0dXJpbmdfY2hhcmFjdGVyaXN0aWNfMi4wLjBfVGltZXN0YW1wIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJwYXR0ZXJuIiA6ICItPyhbMS05XVswLTldezMsfXwwWzAtOV17M30pLSgwWzEtOV18MVswLTJdKS0oMFsxLTldfFsxMl1bMC05XXwzWzAxXSlUKChbMDFdWzAtOV18MlswLTNdKTpbMC01XVswLTldOlswLTVdWzAtOV0oXFwuWzAtOV0rKT98KDI0OjAwOjAwKFxcLjArKT8pKShafChcXCt8LSkoKDBbMC05XXwxWzAtM10pOlswLTVdWzAtOV18MTQ6MDApKT8iLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkRlc2NyaWJlcyBhIFByb3BlcnR5IHdoaWNoIGNvbnRhaW5zIHRoZSBkYXRlIGFuZCB0aW1lIHdpdGggYW4gb3B0aW9uYWwgdGltZXpvbmUuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnBhcnRfYXNfcGxhbm5lZF8xLjAuMV9WYWxpZGl0eVBlcmlvZENoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyB0byBkZWZpbmUgYSBjb250aW51b3VzIHZhbGlkaXR5IHBlcmlvZC4iLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJ2YWxpZEZyb20iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJTdGFydCBkYXRlIG9mIHZhbGlkaXR5IHBlcmlvZCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8ub3Blbm1hbnVmYWN0dXJpbmdfY2hhcmFjdGVyaXN0aWNfMi4wLjBfVGltZXN0YW1wIg0KICAgICAgICAgIH0sDQogICAgICAgICAgInZhbGlkVG8iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJFbmQgZGF0ZSBvZiB2YWxpZGl0eSBwZXJpb2QiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLm9wZW5tYW51ZmFjdHVyaW5nX2NoYXJhY3RlcmlzdGljXzIuMC4wX1RpbWVzdGFtcCINCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogIH0sDQogICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAiY2F0ZW5hWElkIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGZ1bGx5IGFub255bW91cyBDYXRlbmEtWCBJRCBvZiB0aGUgc2VyaWFsaXplZCBwYXJ0LCB2YWxpZCBmb3IgdGhlIENhdGVuYS1YIGRhdGFzcGFjZS4iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXgucGFydF9hc19wbGFubmVkXzEuMC4xX0NhdGVuYVhJZFRyYWl0Ig0KICAgIH0sDQogICAgInBhcnRUeXBlSW5mb3JtYXRpb24iIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcGFydCB0eXBlIGZyb20gd2hpY2ggdGhlIHNlcmlhbGl6ZWQgcGFydCBoYXMgYmVlbiBpbnN0YW50aWF0ZWQiLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXgucGFydF9hc19wbGFubmVkXzEuMC4xX1BhcnRUeXBlSW5mb3JtYXRpb25DaGFyYWN0ZXJpc3RpYyINCiAgICB9LA0KICAgICJ2YWxpZGl0eVBlcmlvZCIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwZXJpb2Qgb2YgdGltZSBkdXJpbmcgd2hpY2ggdGhlIFBhcnQgaXMgb2ZmZXJlZCBieSB0aGUgbWFudWZhY3R1cmVyIGFuZCBjYW4gYmUgcHVyY2hhc2VkIGJ5IGN1c3RvbWVycy4iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXgucGFydF9hc19wbGFubmVkXzEuMC4xX1ZhbGlkaXR5UGVyaW9kQ2hhcmFjdGVyaXN0aWMiDQogICAgfQ0KICB9LA0KICAicmVxdWlyZWQiIDogWyAiY2F0ZW5hWElkIiwgInBhcnRUeXBlSW5mb3JtYXRpb24iIF0NCn0= + # urn:samm:io.catenax.material_for_recycling:1.1.0#MaterialForRecycling + dXJuOnNhbW06aW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfcmVjeWNsaW5nOjEuMS4wI01hdGVyaWFsRm9yUmVjeWNsaW5n: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIlRoaXMgbW9kZWwgZGVwaWN0cyBhIG1hdGVyaWFsIGFzIHNlZW4gYnkgdGhlIHJlY3ljbGVyIGF0IHRoZSBlbmQgb2YgdGhlIGxpZmVjeWNsZSBvZiBhIHByb2R1Y3QuIElmIGEgbWF0ZXJpYWwgY29uc2lzdHMgb2Ygb25seSBvbmUgc2luZ2xlIGNvbXBvbmVudCB0aGUgbmFtZSBhbmQgY2xhc3MgZm9yIHRoZSBhc3BlY3QgYXJlIG5vdCB1c2VkIiwNCiAgInR5cGUiIDogIm9iamVjdCIsDQogICJjb21wb25lbnRzIiA6IHsNCiAgICAic2NoZW1hcyIgOiB7DQogICAgICAidXJuX2JhbW1faW8ub3Blbm1hbnVmYWN0dXJpbmdfY2hhcmFjdGVyaXN0aWNfMi4wLjBfVGV4dCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkRlc2NyaWJlcyBhIFByb3BlcnR5IHdoaWNoIGNvbnRhaW5zIHBsYWluIHRleHQuIFRoaXMgaXMgaW50ZW5kZWQgZXhjbHVzaXZlbHkgZm9yIGh1bWFuIHJlYWRhYmxlIHN0cmluZ3MsIG5vdCBmb3IgaWRlbnRpZmllcnMsIG1lYXN1cmVtZW50IHZhbHVlcywgZXRjLiINCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfcmVjeWNsaW5nXzEuMS4wX01hdGVyaWFsQ2xhc3MiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDbGFzcyBhY2NvcmRpbmcgdG8gdGhlIHJlZmVybmNlZCBzdGFuZGFyZCB0aGUgbWF0ZXJpYWwgYmVsb25ncyB0by4gVGhlIElNRFMgcmVjb21tZW5kYXRpb25zIGFuZCB0aGUgSU1EUyBydWxlcyBhcmUgZXhjbHVzZXZpbHkgYWNjZXNzaWJsZSB3aXRoaW4gdGhlIElNRFMgcG9ydGFsIHRvIG1lbWJlcnMgb2YgdGhlIElNRFMgYXNzb2NpYXRpb24uIEluIG9yZGVyIHRvIGFjY2VzcyB0aGUgZGF0YSBvbmUgbmVlZHMgdG8gYmUgbWVtYmVyIG9mIHRoZSBhc3NvY2lhdGlvbi4iDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXgubWF0ZXJpYWxfZm9yX3JlY3ljbGluZ18xLjEuMF9BZ2dyZWdhdGVTdGF0ZSIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZW51bSIgOiBbICJzb2xpZCIsICJsaXF1aWQiLCAiZ2FzZW5vdXMiIF0NCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfcmVjeWNsaW5nXzEuMS4wX1BlcmNlbnRhZ2UiIDogew0KICAgICAgICAidHlwZSIgOiAibnVtYmVyIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJQZXJjZW50YWdlIG9mIGFscmVhZHkgcmVjeWNsZWQgbWF0ZXJpYWwgY29udGFpbmVkLiINCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8ub3Blbm1hbnVmYWN0dXJpbmdfY2hhcmFjdGVyaXN0aWNfMi4wLjBfVW5pdFJlZmVyZW5jZSIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAicGF0dGVybiIgOiAiW2EtekEtWl0qOlthLXpBLVpdKyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGVzY3JpYmVzIGEgUHJvcGVydHkgY29udGFpbmluZyBhIHJlZmVyZW5jZSB0byBvbmUgb2YgdGhlIHVuaXRzIGluIHRoZSBVbml0IENhdGFsb2cuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4Lm1hdGVyaWFsX2Zvcl9yZWN5Y2xpbmdfMS4xLjBfVmFsdWUiIDogew0KICAgICAgICAidHlwZSIgOiAibnVtYmVyIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJRdWFudGlmaWFibGUgdmFsdWUgYXMgZG91YmxlIGluIHJlZmVyZW5jZSB0byB0aGUgbWVhc3VyZW1lbnRVbml0Ig0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4Lm1hdGVyaWFsX2Zvcl9yZWN5Y2xpbmdfMS4xLjBfUXVhbnRpdHlDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAicXVhbnRpdHkgY2hhcmFjdGVyaXN0aWMgZm9yIHRoZSBtYXRlcmlhbCBleHByZXNzZWQgaW4gdmFsdWUgYW5kIHVuaXQiLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJ1bml0IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVW5pdCBvZiBNZWFzdXJlbWVudCBmb3IgdGhlIHF1YW50aXR5IG9mIHNlcmlhbGl6ZWQgb2JqZWN0cy5cblRoZSByZWNvbW1lbmRlZCB1bml0cyBhcmUgdGhlIFNJIHVuaXRzIHN1Y2ggYXMgdW5pdDpraWxvZ3JhbSBvciAgYWRkaXRpb25hbCB1bml0OnBlcmNlbnQiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLm9wZW5tYW51ZmFjdHVyaW5nX2NoYXJhY3RlcmlzdGljXzIuMC4wX1VuaXRSZWZlcmVuY2UiDQogICAgICAgICAgfSwNCiAgICAgICAgICAidmFsdWUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJNZWFzdXJlbWVudCB2YWx1ZSBhcyBhIGRvdWJsZS4gVGhlIHVuaXQgaXMgc2F2ZWQgaW4gdGhlIHByb3BlcnR5IG1lYXN1cmVtZW50VW5pdCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfcmVjeWNsaW5nXzEuMS4wX1ZhbHVlIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgInVuaXQiLCAidmFsdWUiIF0NCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfcmVjeWNsaW5nXzEuMS4wX0NvbXBvbmVudEVudGl0eSIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHByb3BlcnRpZXMgdGhhdCBkZXNjcmliZSBhIGNvbXBvbmVudCIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImFnZ3JlZ2F0ZVN0YXRlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGFnZ3JlZ2F0ZSBzdGF0ZSB0aGUgbWF0ZXJpYWxpcyBpbiBhdCB0aGUgdGltZXBvaW50IHRoZSBpdGVtIGlzIGRpc2Fzc2VtYmxlZCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfcmVjeWNsaW5nXzEuMS4wX0FnZ3JlZ2F0ZVN0YXRlIg0KICAgICAgICAgIH0sDQogICAgICAgICAgInJlY3ljbGVkQ29udGVudCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkluZGljYXRlcyBpZiB0aGUgbWF0ZXJpYWwgd2FzIGlzIHJlY3ljbGVkLiBQZXJjZW50YWdlIG9mIGhvdyBtdWNoIG9mIHRoZSBtYXRlcmlhbCB3YXMgcmVjeWNsZWQuIFRoaXMgY2FuIGJlIGFuIGFnZ3JlZ2F0aW9uIHJlZ2FyZGluZyB0aGUgbWF0ZXJpYWxzIGJlbG93LiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfcmVjeWNsaW5nXzEuMS4wX1BlcmNlbnRhZ2UiDQogICAgICAgICAgfSwNCiAgICAgICAgICAibWF0ZXJpYWxBYmJyZXZpYXRpb24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBIHNob3J0IGFiYnJldmlhdGlvbiBvZiB0aGUgbWF0ZXJpYWxOYW1lIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5vcGVubWFudWZhY3R1cmluZ19jaGFyYWN0ZXJpc3RpY18yLjAuMF9UZXh0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgIm1hdGVyaWFsQ2xhc3MiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgY2xhc3Mgb2YgYSBtYXRlcmlhbCBmb2xsb3dpbmcgdGhlIHJlZmVyZW5jZWQgc3RhbmRhcmQuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4Lm1hdGVyaWFsX2Zvcl9yZWN5Y2xpbmdfMS4xLjBfTWF0ZXJpYWxDbGFzcyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJtYXRlcmlhbE5hbWUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgY29tbWVyY2lhbCBuYW1lIG9mIGEgbWF0ZXJpYWwiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLm9wZW5tYW51ZmFjdHVyaW5nX2NoYXJhY3RlcmlzdGljXzIuMC4wX1RleHQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAicXVhbnRpdHkiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJxdWFudGl0eSBvZiB0aGUgbWF0ZXJpYWwgZXhwcmVzc2VkIGluIHZhbHVlIGFuZCB1bml0IiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4Lm1hdGVyaWFsX2Zvcl9yZWN5Y2xpbmdfMS4xLjBfUXVhbnRpdHlDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJtYXRlcmlhbENsYXNzIiwgIm1hdGVyaWFsTmFtZSIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4Lm1hdGVyaWFsX2Zvcl9yZWN5Y2xpbmdfMS4xLjBfQ29tcG9uZW50Q2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkRlc2NyaWJlcyB0aGUgY29uc2lzdGVuY3kiLA0KICAgICAgICAidHlwZSIgOiAiYXJyYXkiLA0KICAgICAgICAiaXRlbXMiIDogew0KICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4Lm1hdGVyaWFsX2Zvcl9yZWN5Y2xpbmdfMS4xLjBfQ29tcG9uZW50RW50aXR5Ig0KICAgICAgICB9LA0KICAgICAgICAidW5pcXVlSXRlbXMiIDogdHJ1ZQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgInByb3BlcnRpZXMiIDogew0KICAgICJtYXRlcmlhbE5hbWUiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgY29tbWVyY2lhbCBuYW1lIG9mIGEgbWF0ZXJpYWwiLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLm9wZW5tYW51ZmFjdHVyaW5nX2NoYXJhY3RlcmlzdGljXzIuMC4wX1RleHQiDQogICAgfSwNCiAgICAibWF0ZXJpYWxDbGFzcyIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBjbGFzcyBvZiBhIG1hdGVyaWFsIGZvbGxvd2luZyB0aGUgcmVmZXJlbmNlZCBzdGFuZGFyZC4iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXgubWF0ZXJpYWxfZm9yX3JlY3ljbGluZ18xLjEuMF9NYXRlcmlhbENsYXNzIg0KICAgIH0sDQogICAgImNvbXBvbmVudCIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIkNvbXBvbmVudHMgdGhlIG1hdGVyaWFsIGNvbnNpc3RzIG9mIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4Lm1hdGVyaWFsX2Zvcl9yZWN5Y2xpbmdfMS4xLjBfQ29tcG9uZW50Q2hhcmFjdGVyaXN0aWMiDQogICAgfSwNCiAgICAicmVjeWNsZWRDb250ZW50IiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiSW5kaWNhdGVzIGlmIHRoZSBtYXRlcmlhbCB3YXMgaXMgcmVjeWNsZWQuIFBlcmNlbnRhZ2Ugb2YgaG93IG11Y2ggb2YgdGhlIG1hdGVyaWFsIHdhcyByZWN5Y2xlZC4gVGhpcyBjYW4gYmUgYW4gYWdncmVnYXRpb24gcmVnYXJkaW5nIHRoZSBtYXRlcmlhbHMgYmVsb3cuIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4Lm1hdGVyaWFsX2Zvcl9yZWN5Y2xpbmdfMS4xLjBfUGVyY2VudGFnZSINCiAgICB9DQogIH0sDQogICJyZXF1aXJlZCIgOiBbICJjb21wb25lbnQiIF0NCn0= + # urn:samm:io.catenax.serial_part:2.0.0#CertificateOfDestruction + dXJuOnNhbW06aW8uY2F0ZW5heC5zZXJpYWxfcGFydDoyLjAuMCNDZXJ0aWZpY2F0ZU9mRGVzdHJ1Y3Rpb24: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIkluZm9ybWF0aW9uIG9uIHRoZSBjZXJ0aWZpY2F0ZSBvZiBkZXN0cnVjdGlvbi4gSW4gZ2VybWFuOiBWZXJ3ZXJ0dW5nc25hY2h3ZWlzIiwNCiAgInR5cGUiIDogIm9iamVjdCIsDQogICJjb21wb25lbnRzIiA6IHsNCiAgICAic2NoZW1hcyIgOiB7DQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9EYXRlQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImZvcm1hdCIgOiAiZGF0ZSIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGF0ZSBjaGFyYWN0ZXJpc3RpYyINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RleHQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEZXNjcmliZXMgYSBQcm9wZXJ0eSB3aGljaCBjb250YWlucyBwbGFpbiB0ZXh0LiBUaGlzIGlzIGludGVuZGVkIGV4Y2x1c2l2ZWx5IGZvciBodW1hbiByZWFkYWJsZSBzdHJpbmdzLCBub3QgZm9yIGlkZW50aWZpZXJzLCBtZWFzdXJlbWVudCB2YWx1ZXMsIGV0Yy4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9Cb29sZWFuIiA6IHsNCiAgICAgICAgInR5cGUiIDogImJvb2xlYW4iLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlJlcHJlc2VudHMgYSBib29sZWFuIHZhbHVlIChpLmUuIGEgXCJmbGFnXCIpLiINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9aaXBUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBtYXhpbWFsIGxlbmd0aCBvZiB0aGUgdGhlIHBvc3RhbCBjb2RlIGlzIHJlc3RyaWN0ZWQgdG8gMTQgY2hyYWN0ZXJzIiwNCiAgICAgICAgIm1heExlbmd0aCIgOiAxNA0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmNlcnRpZmljYXRlX29mX2Rlc3RydWN0aW9uXzIuMC4wX0NvdW50cnlDb2RlVHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDb25zdHJhaW50IHRvIGJlIGNvbmZvcm0gd2l0aCB0aGUgSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUgd2l0aCB0d28gdXBwZXIgY2FzZSBjaGFyYWN0ZXJzIiwNCiAgICAgICAgInBhdHRlcm4iIDogIl5bQS1aXXsyfSQiDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguY2VydGlmaWNhdGVfb2ZfZGVzdHJ1Y3Rpb25fMi4wLjBfQWRkcmVzcyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQWRkcmVzcyBjaGFyYWN0ZXJpc3RpYyB3aGljaCBjb3JyZXNwb25kcyB0byB0aGUgaW5mb3JtYXRpb24gZ2l2ZW4gaW4gdGhlIGNlcnRpZmljYXRlIG9mIGRlc3RydWN0aW9uIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAic3RyZWV0IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHN0cmVldCBuYW1lIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGV4dCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJob3VzZU51bWJlciIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBob3VzZSBudW1iZXIgb2YgdGhlIGFkZHJlc3MiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgInppcCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBwb3N0YWwgY29kZSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9aaXBUcmFpdCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJsb2NhdGlvbiIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBsb2NhdGlvbiBvciBjaXR5IG9mIHRoZSBhZGRyZXNzIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGV4dCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJuYW1lIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiTmFtZSBvZiB0aGUgcHJpdmF0ZSBpbmRpdmlkdWFsLCBjb21wYW55IG9yIGF1dGhvcml0eSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RleHQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY291bnRyeSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNvdW50cnkgY29kZSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9Db3VudHJ5Q29kZVRyYWl0Ig0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgInN0cmVldCIsICJob3VzZU51bWJlciIsICJ6aXAiLCAibG9jYXRpb24iLCAibmFtZSIsICJjb3VudHJ5IiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguY2VydGlmaWNhdGVfb2ZfZGVzdHJ1Y3Rpb25fMi4wLjBfVmVoaWNsZU93bmVyQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJpc1ZlaGljbGVPd25lckluZm9ybWF0aW9uQ29tcGxldGUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJCb29sZWFuIGZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIGRhdGEgc2V0IGlzIGNvbXBsZXRlLiBJZiB0aGUgZGF0YSBzZXQgY29udGFpbnMgdW5rbm93biBmaWVsZHMsIHRoZSB2YWx1ZSBpcyBmYWxzZSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX0Jvb2xlYW4iDQogICAgICAgICAgfSwNCiAgICAgICAgICAidmVoaWNsZU93bmVyQWRkcmVzcyIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkFkZHJlc3Mgb2YgdGhlIHZlaGljbGUgb3duZXIgIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmNlcnRpZmljYXRlX29mX2Rlc3RydWN0aW9uXzIuMC4wX0FkZHJlc3MiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY2l0aXplbnNoaXAiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaXRpemVuc2hpcCBvZiB0aGUgdmVoaWNsZSBvd25lciIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9Db3VudHJ5Q29kZVRyYWl0Ig0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgImlzVmVoaWNsZU93bmVySW5mb3JtYXRpb25Db21wbGV0ZSIsICJ2ZWhpY2xlT3duZXJBZGRyZXNzIiwgImNpdGl6ZW5zaGlwIiBdLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNoYXJhY3RlcmlzdGljIHRvIGRlc2NyaWJlIHRoZSB2ZWhpY2xlIG93bmVyIGF0dHJpYnV0ZXMiDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguY2VydGlmaWNhdGVfb2ZfZGVzdHJ1Y3Rpb25fMi4wLjBfV2VpZ2h0IiA6IHsNCiAgICAgICAgInR5cGUiIDogIm51bWJlciIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAid2VpZ2h0IG9mIHRoZSB2ZWhpY2xlIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmNlcnRpZmljYXRlX29mX2Rlc3RydWN0aW9uXzIuMC4wX1ZlaGljbGVDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImlzVmVoaWNsZUluZm9ybWF0aW9uQ29tcGxldGUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJCb29sZWFuIGZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIGRhdGEgc2V0IGlzIGNvbXBsZXRlLiBJZiB0aGUgZGF0YSBzZXQgY29udGFpbnMgdW5rbm93biBmaWVsZHMsIHRoZSB2YWx1ZSBpcyBmYWxzZSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX0Jvb2xlYW4iDQogICAgICAgICAgfSwNCiAgICAgICAgICAiZW1wdHlXZWlnaHQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJFbXB0eSB3ZWlnaHQgaW4gYWNjb3JkYW5jZSB3aXRoIKcyQWJzLjEgTnIuMjMgQWx0ZmFocnpldWdWIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmNlcnRpZmljYXRlX29mX2Rlc3RydWN0aW9uXzIuMC4wX1dlaWdodCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJmaXJzdFJlZ2lzdHJhdGlvbiIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBmaXJzdCB0aW1lIHRoaXMgdmVoaWNsZSBnb3QgcmVnaXN0ZXJlZCB3aXRoIGFuIGluaXRpYWwgbGljZW5zZSBwbGF0ZSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RleHQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAibGljZW5zZVBsYXRlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ3VycmVudCAoaS5lLiBsYXN0KSBhc3NpZ25lZCBudW1iZXIvIGxpY2Vuc2UgcGxhdGUgdG8gdGhlIHZlaGljbGUiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImxpY2Vuc2VBYmJyZXZpYXRpb24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgZmlyc3QgY2hhcmFjdGVycyBvbiB0aGUgbGljZW5zZSBwbGF0ZSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RleHQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiaWRlbnRpZmljYXRpb24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgdW5pcXVlIHZlaGljbGUgaWRlbnRpZmljYXRpb24gbnVtYmVyIChWSU4pIG9mIHRoZSB2ZWhpY2xlICIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RleHQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAibW9kZWwiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJWZWhpY2xlIG1vZGVsIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGV4dCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJicmFuZCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkJyYW5kIG5hbWUiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImNsYXNzIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVmVoaWNsZSBjbGFzcyB0aGUgdmVoaWNsZSByZWZlcnMgdG8iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0Ig0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgImlzVmVoaWNsZUluZm9ybWF0aW9uQ29tcGxldGUiLCAiZW1wdHlXZWlnaHQiLCAiZmlyc3RSZWdpc3RyYXRpb24iLCAibGljZW5zZVBsYXRlIiwgImxpY2Vuc2VBYmJyZXZpYXRpb24iLCAiaWRlbnRpZmljYXRpb24iLCAibW9kZWwiLCAiYnJhbmQiLCAiY2xhc3MiIF0sDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ2hhcmFjdGVyaXN0aWMgdG8gZGVzY3JpYmUgdGhlIHZlaGljbGUgYXR0cmlidXRlcyINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9QaG9uZVRyYWl0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUGhvbmUgY29uc3RyYWludCBhbGxvdyBvbmx5IG51bWJlcnMsIHdoaXRlc3BhY2VzIGFuZCBhbiBvcHRpb25hbCBsZWFkaW5nIHBsdXMgc2lnbiIsDQogICAgICAgICJwYXR0ZXJuIiA6ICJbK10/WzAtOSBdKyINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9Db250YWN0Q2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNvbnRhY3QgY2hhcmFjdGVyaXN0aWMgYmFzZWQgb24gdGhlIGNvbnRhY3QgaW5mb3JtYXRpb24gYXZhaWxhYmxlIGluIHRoZSBjZXJ0aWZpY2F0ZSBvZiBkZXN0cnVjdGlvbiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgInBob25lIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUGhvbmUgbnVtYmVyIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmNlcnRpZmljYXRlX29mX2Rlc3RydWN0aW9uXzIuMC4wX1Bob25lVHJhaXQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiZmF4IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRmF4IG51bWJlciIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9QaG9uZVRyYWl0Ig0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgInBob25lIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguY2VydGlmaWNhdGVfb2ZfZGVzdHJ1Y3Rpb25fMi4wLjBfUmVjZWl2aW5nQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNoYXJhY3RlcmlzdGljIHRvIGRlc2NyaWJlIHRoZSByZWNlaXZpbmcgYXR0cmlidXRlcyIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImlzVmVoaWNsZVdpdGhkcmF3bkZyb21TZXJ2aWNlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVHJ1ZSBpZiB0aGUgdmVoaWNsZSBoYXMgYmVlbiB3aXRoZHJhd24gZnJvbSB0aGUgc2VydmljZSBhbmQgb3V0IG9mIGNpcmN1bGF0aW9uIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfQm9vbGVhbiINCiAgICAgICAgICB9LA0KICAgICAgICAgICJyZWNlaXZlckF1ZGl0b3JBZGRyZXNzIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGFkZHJlc3Mgb2YgdGhlIGF1ZGl0b3IgIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmNlcnRpZmljYXRlX29mX2Rlc3RydWN0aW9uXzIuMC4wX0FkZHJlc3MiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiaXNzdWVEYXRlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGRhdGUgb2YgaXNzdWUgb2YgdGhlIGNlcnRpZmljYXRlIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmNlcnRpZmljYXRlX29mX2Rlc3RydWN0aW9uXzIuMC4wX0RhdGVDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJleHBpcnlEYXRlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGRhdGUgb2YgZXhwaXJhdGlvbiBvZiB0aGUgY2VydGlmaWNhdGUiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguY2VydGlmaWNhdGVfb2ZfZGVzdHJ1Y3Rpb25fMi4wLjBfRGF0ZUNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgInJlY2VpdmVyQ29udGFjdCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNvbnRhY3QgaW5mb3JtYXRpb24gb2YgdGhlIHJlY2VpdmluZyBjb21wYW55IiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmNlcnRpZmljYXRlX29mX2Rlc3RydWN0aW9uXzIuMC4wX0NvbnRhY3RDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJyZWNlaXZlckF1ZGl0b3JDb250YWN0IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQXVkaXRvciBjb250YWN0IGluZm9ybWF0aW9uIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmNlcnRpZmljYXRlX29mX2Rlc3RydWN0aW9uXzIuMC4wX0NvbnRhY3RDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJyZWNlaXZlckFkZHJlc3MiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgYWRkcmVzcyBvZiB0aGUgcmVjZWl2ZXIgIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmNlcnRpZmljYXRlX29mX2Rlc3RydWN0aW9uXzIuMC4wX0FkZHJlc3MiDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicmVxdWlyZWQiIDogWyAiaXNWZWhpY2xlV2l0aGRyYXduRnJvbVNlcnZpY2UiLCAicmVjZWl2ZXJBdWRpdG9yQWRkcmVzcyIsICJpc3N1ZURhdGUiLCAiZXhwaXJ5RGF0ZSIsICJyZWNlaXZlckNvbnRhY3QiLCAicmVjZWl2ZXJBdWRpdG9yQ29udGFjdCIsICJyZWNlaXZlckFkZHJlc3MiIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9EaXNtYW50bGVyQ2hhcmFjdGVyaXNpdGMiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNoYXJhY3RlcmlzdGljIHRvIGRlc2NyaWJlIHRoZSBkaXNtYW50bGVyIGF0dHJpYnV0ZXMiLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJpc1ZlaGljbGVXaXRoZHJhd25Gcm9tU2VydmljZSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRydWUgaWYgdGhlIHZlaGljbGUgaGFzIGJlZW4gd2l0aGRyYXduIGZyb20gdGhlIHNlcnZpY2UgYW5kIG91dCBvZiBjaXJjdWxhdGlvbiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX0Jvb2xlYW4iDQogICAgICAgICAgfSwNCiAgICAgICAgICAiZGlzbWFudGxlckFkZHJlc3MiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBZGRyZXNzIGZvciB0aGUgZGlzbWFudGxpbmcgY29tcGFueSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9BZGRyZXNzIg0KICAgICAgICAgIH0sDQogICAgICAgICAgImdvdmVybm1lbnRBZGRyZXNzIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGFkZHJlc3Mgb2YgdGhlIHB1YmxpYyBnb3Zlcm5tZW50IiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmNlcnRpZmljYXRlX29mX2Rlc3RydWN0aW9uXzIuMC4wX0FkZHJlc3MiDQogICAgICAgICAgfSwNCiAgICAgICAgICAicmVjZWl2ZXJBdWRpdG9yQWRkcmVzcyIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBhZGRyZXNzIG9mIHRoZSBhdWRpdG9yICIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9BZGRyZXNzIg0KICAgICAgICAgIH0sDQogICAgICAgICAgImlzc3VlRGF0ZSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBkYXRlIG9mIGlzc3VlIG9mIHRoZSBjZXJ0aWZpY2F0ZSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9EYXRlQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiZXhwaXJ5RGF0ZSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBkYXRlIG9mIGV4cGlyYXRpb24gb2YgdGhlIGNlcnRpZmljYXRlIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmNlcnRpZmljYXRlX29mX2Rlc3RydWN0aW9uXzIuMC4wX0RhdGVDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJkaXNtYW50bGVyQ29udGFjdCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkRpc21hbnRsZXIgY29udGFjdCBpbmZvcm1hdGlvbiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9Db250YWN0Q2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiZGlzbWFudGxlckF1ZGl0b3JBZGRyZXNzIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiSW5mb3JtYXRpb24gYWJvdXQgdGhlIGF1ZGl0b3IgYWRkcmVzcyIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9BZGRyZXNzIg0KICAgICAgICAgIH0sDQogICAgICAgICAgImRpc21hbnRsZXJBdWRpdG9yQ29udGFjdCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkluZm9ybWF0aW9uIGFib3V0IHRoZSBhdWRpdG9yIGNvbnRhY3QiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguY2VydGlmaWNhdGVfb2ZfZGVzdHJ1Y3Rpb25fMi4wLjBfQ29udGFjdENoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgImlzVmVoaWNsZVdpdGhkcmF3bkZyb21TZXJ2aWNlIiwgImRpc21hbnRsZXJBZGRyZXNzIiwgImdvdmVybm1lbnRBZGRyZXNzIiwgInJlY2VpdmVyQXVkaXRvckFkZHJlc3MiLCAiaXNzdWVEYXRlIiwgImV4cGlyeURhdGUiLCAiZGlzbWFudGxlckNvbnRhY3QiLCAiZGlzbWFudGxlckF1ZGl0b3JBZGRyZXNzIiwgImRpc21hbnRsZXJBdWRpdG9yQ29udGFjdCIgXQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgInByb3BlcnRpZXMiIDogew0KICAgICJkaXNtYW50bGluZ0RhdGUiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJEYXRlIG9mIGlzc3VlIG9mIHRoZSBjZXJ0aWZpY2F0ZSBvZiBkZXN0cnVjdGlvbiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9EYXRlQ2hhcmFjdGVyaXN0aWMiDQogICAgfSwNCiAgICAic2VyaWFsTnVtYmVyIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiU2VyaWFsIG51bWJlciB0byBpZGVudGlmeSB0aGUgY2VydGlmaWNhdGUgb2YgZGVzdHJ1Y3Rpb24iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0Ig0KICAgIH0sDQogICAgInZlaGljbGVPd25lclByb3BlcnRpZXMiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJQcm9wZXJ0aWVzIHVuZGVyIHRoZSBmaXJzdCBzZWN0aW9uIG9mIHRoZSBjZXJ0aWZpY2F0ZSBvZiBkZXN0cnVjdGlvbiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9WZWhpY2xlT3duZXJDaGFyYWN0ZXJpc3RpYyINCiAgICB9LA0KICAgICJ2ZWhpY2xlUHJvcGVydGllcyIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIlByb3BlcnRpZXMgdW5kZXIgdGhlIHNlY29uZCBzZWN0aW9uIG9mIHRoZSBjZXJ0aWZpY2F0ZSBvZiBkZXN0cnVjdGlvbiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kZXN0cnVjdGlvbl8yLjAuMF9WZWhpY2xlQ2hhcmFjdGVyaXN0aWMiDQogICAgfSwNCiAgICAicmV0dXJuUG9pbnRQcm9wZXJ0aWVzIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiUHJvcGVydGllcyB1bmRlciB0aGUgdGhpcmQgc2VjdGlvbiBvZiB0aGUgY2VydGlmaWNhdGUgb2YgZGVzdHJ1Y3Rpb24iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguY2VydGlmaWNhdGVfb2ZfZGVzdHJ1Y3Rpb25fMi4wLjBfUmVjZWl2aW5nQ2hhcmFjdGVyaXN0aWMiDQogICAgfSwNCiAgICAiZGlzbWFudGxlclByb3BlcnRpZXMiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJQcm9wZXJ0aWVzIHVuZGVyIHRoZSBmb3VydGggc2VjdGlvbiBvZiB0aGUgY2VydGlmaWNhdGUgb2YgZGVzdHJ1Y3Rpb24iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguY2VydGlmaWNhdGVfb2ZfZGVzdHJ1Y3Rpb25fMi4wLjBfRGlzbWFudGxlckNoYXJhY3RlcmlzaXRjIg0KICAgIH0sDQogICAgImNvbXBhbnlOdW1iZXIiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJDb21wYW55IG51bWJlciBhcyBhbiBkaXNtYW50bGVyIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGV4dCINCiAgICB9DQogIH0sDQogICJyZXF1aXJlZCIgOiBbICJkaXNtYW50bGluZ0RhdGUiLCAic2VyaWFsTnVtYmVyIiwgInZlaGljbGVPd25lclByb3BlcnRpZXMiLCAidmVoaWNsZVByb3BlcnRpZXMiLCAicmV0dXJuUG9pbnRQcm9wZXJ0aWVzIiwgImRpc21hbnRsZXJQcm9wZXJ0aWVzIiwgImNvbXBhbnlOdW1iZXIiIF0NCn0= + # urn:samm:io.catenax.single_level_usage_as_planned:2.0.0#SingleLevelUsageAsPlanned + dXJuOnNhbW06aW8uY2F0ZW5heC5zaW5nbGVfbGV2ZWxfdXNhZ2VfYXNfcGxhbm5lZDoyLjAuMCNTaW5nbGVMZXZlbFVzYWdlQXNQbGFubmVk: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIlRoZSBhc3BlY3QgcHJvdmlkZXMgdGhlIGluZm9ybWF0aW9uIGluIHdoaWNoIHBhcmVudCBwYXJ0KHMpL3Byb2R1Y3Qocyl0aGUgZ2l2ZW4gaXRlbSBpcyB0byBiZSBhc3NlbWJsZWQgaW50byBvciB1c2VkLiBUaGlzIGNvdWxkIGJlIGEgMToxIHJlbGF0aW9uc2hpcCBpbiB0ZXJtcyBvZiBhIGUuZy4gYSBicmFrZSBjb21wb25lbnQgb3IgMTpuIGZvciBlLmcuIGNvYXRpbmdzLiBUaGUgZ2l2ZW4gaXRlbSBhcyB3ZWxsIGFzIHRoZSBwYXJlbnQgaXRlbSBtdXN0IHJlZmVyIHRvIGFuIG9iamVjdCBmcm9tIHRoZSBhcy1wbGFubmVkIGxpZmVjeWNsZSBwaGFzZS5cbklmIG11bHRpcGxlIHZlcnNpb25zIG9mIHBhcmVudCBwYXJ0cyBleGlzdCB0aGF0IHRoZSBjaGlsZCBwYXJ0IGNhbiBiZSBhc3NlbWJsZWQgaW50byBvciB1c2VkLCBhbGwgdmVyc2lvbnMgb2YgdGhlIHBhcmVudCBwYXJ0IGFyZSBpbmNsdWRlZCBpbiB0aGUgdXNhZ2UgbGlzdC4iLA0KICAidHlwZSIgOiAib2JqZWN0IiwNCiAgImNvbXBvbmVudHMiIDogew0KICAgICJzY2hlbWFzIiA6IHsNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC51dWlkXzIuMC4wX1V1aWRWNFRyYWl0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHByb3ZpZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbiBlbnN1cmVzIHRoYXQgdGhlIFVVSUQgaXMgY29tcG9zZWQgb2YgZml2ZSBncm91cHMgb2YgY2hhcmFjdGVycyBzZXBhcmF0ZWQgYnkgaHlwaGVucywgaW4gdGhlIGZvcm0gOC00LTQtNC0xMiBmb3IgYSB0b3RhbCBvZiAzNiBjaGFyYWN0ZXJzICgzMiBoZXhhZGVjaW1hbCBjaGFyYWN0ZXJzIGFuZCA0IGh5cGhlbnMpLCBvcHRpb25hbGx5IHByZWZpeGVkIGJ5IFwidXJuOnV1aWQ6XCIgdG8gbWFrZSBpdCBhbiBJUkkuIiwNCiAgICAgICAgInBhdHRlcm4iIDogIiheWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCl8KF51cm46dXVpZDpbMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kKSINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zaW5nbGVfbGV2ZWxfdXNhZ2VfYXNfcGxhbm5lZF8yLjAuMF9EYXRlVGltZVRyYWl0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUmVndWxhciBFeHByZXNzaW9uIHRvIGVuYWJsZSBVVEMgYW5kIFRpbWV6b25lIGZvcm1hdHMgYW5kIHRoZSBwb3NzaWJpbGl0eSB0byBleGNsdWRlIHRpbWUgaW5mb3JtYXRpb24uIiwNCiAgICAgICAgInBhdHRlcm4iIDogIl4tPyhbMS05XVswLTldezMsfXwwWzAtOV17M30pLSgwWzEtOV18MVswLTJdKS0oMFsxLTldfFsxMl1bMC05XXwzWzAxXSkoVCgoWzAxXVswLTldfDJbMC0zXSk6WzAtNV1bMC05XTpbMC01XVswLTldKFxcLlswLTldKyk/fCgyNDowMDowMChcXC4wKyk/KSkoWnwoXFwrfC0pKCgwWzAtOV18MVswLTNdKTpbMC01XVswLTldfDE0OjAwKSk/KT8kIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5xdWFudGl0eV8yLjAuMF9RdWFudGl0eVZhbHVlQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAibnVtYmVyIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcXVhbnRpdHkgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSB1bml0IGV4cHJlc3NlZCBhcyBmbG9hdC4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnF1YW50aXR5XzIuMC4wX0l0ZW1Vbml0RW51bWVyYXRpb24iIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgInBhdHRlcm4iIDogIlthLXpBLVpdKjpbYS16QS1aXSsiLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkVudW1lcmF0aW9uIGZvciBjb21tb24gaXRlbSB1bml0cy4iLA0KICAgICAgICAiZW51bSIgOiBbICJ1bml0OnBpZWNlIiwgInVuaXQ6c2V0IiwgInVuaXQ6cGFpciIsICJ1bml0OnBhZ2UiLCAidW5pdDpjeWNsZSIsICJ1bml0OmtpbG93YXR0SG91ciIsICJ1bml0OmdyYW0iLCAidW5pdDpraWxvZ3JhbSIsICJ1bml0OnRvbm5lTWV0cmljVG9uIiwgInVuaXQ6dG9uVXNPclNob3J0VG9uVWtvcnVzIiwgInVuaXQ6b3VuY2VBdm9pcmR1cG9pcyIsICJ1bml0OnBvdW5kIiwgInVuaXQ6bWV0cmUiLCAidW5pdDpjZW50aW1ldHJlIiwgInVuaXQ6a2lsb21ldHJlIiwgInVuaXQ6aW5jaCIsICJ1bml0OmZvb3QiLCAidW5pdDp5YXJkIiwgInVuaXQ6c3F1YXJlQ2VudGltZXRyZSIsICJ1bml0OnNxdWFyZU1ldHJlIiwgInVuaXQ6c3F1YXJlSW5jaCIsICJ1bml0OnNxdWFyZUZvb3QiLCAidW5pdDpzcXVhcmVZYXJkIiwgInVuaXQ6Y3ViaWNDZW50aW1ldHJlIiwgInVuaXQ6Y3ViaWNNZXRyZSIsICJ1bml0OmN1YmljSW5jaCIsICJ1bml0OmN1YmljRm9vdCIsICJ1bml0OmN1YmljWWFyZCIsICJ1bml0OmxpdHJlIiwgInVuaXQ6bWlsbGlsaXRyZSIsICJ1bml0OmhlY3RvbGl0cmUiLCAidW5pdDpzZWNvbmRVbml0T2ZUaW1lIiwgInVuaXQ6bWludXRlVW5pdE9mVGltZSIsICJ1bml0OmhvdXJVbml0T2ZUaW1lIiwgInVuaXQ6ZGF5IiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnF1YW50aXR5XzIuMC4wX0l0ZW1RdWFudGl0eUNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyBmb3IgbWVhc3VyZW1lbnRzIG9mIGFuIGl0ZW0gKG1hc3MsIGNvdW50LCBsaW5lYXIsIGFyZWEsIHZvbHVtZSwgbWlzYykuIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAidmFsdWUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcXVhbnRpdHkgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSB1bml0LiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQucXVhbnRpdHlfMi4wLjBfUXVhbnRpdHlWYWx1ZUNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgInVuaXQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgdW5pdCBvZiBhbiBpdGVtLiBDb21tb24gdW5pdHMgbWF5IGJlIHJlbGF0ZWQgdG8gbWFzcywgY291bnQsIGxpbmVhciwgYXJlYSwgdm9sdW1lIG9yIG1pc2MuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5xdWFudGl0eV8yLjAuMF9JdGVtVW5pdEVudW1lcmF0aW9uIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgInZhbHVlIiwgInVuaXQiIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5zaW5nbGVfbGV2ZWxfdXNhZ2VfYXNfcGxhbm5lZF8yLjAuMF9WYWxpZGl0eVBlcmlvZENoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyAgZm9yIGEgdmFsaWRpdHkgcGVyaW9kIGRlZmluZWQgYnkgYW4gKG9wdGlvbmFsKXN0YXJ0IGFuZCBhbiAob3B0aW9uYWwpZW5kIHRpbWVzdGFtcC4iLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJ2YWxpZEZyb20iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJTdGFydCBkYXRlIG9mIHZhbGlkaXR5IHBlcmlvZC4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2luZ2xlX2xldmVsX3VzYWdlX2FzX3BsYW5uZWRfMi4wLjBfRGF0ZVRpbWVUcmFpdCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJ2YWxpZFRvIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRW5kIGRhdGUgb2YgdmFsaWRpdHkgcGVyaW9kLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaW5nbGVfbGV2ZWxfdXNhZ2VfYXNfcGxhbm5lZF8yLjAuMF9EYXRlVGltZVRyYWl0Ig0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC5idXNpbmVzc19wYXJ0bmVyX251bWJlcl8yLjAuMF9CcG5sVHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcHJvdmlkZWQgcmVndWxhciBleHByZXNzaW9uIGVuc3VyZXMgdGhhdCB0aGUgQlBOTCBpcyBjb21wb3NlZCBvZiBwcmVmaXggJ0JQTkwnLCAxMCBkaWdpdHMgYW5kIHR3byBhbHBoYW51bWVyaWMgbGV0dGVycy4iLA0KICAgICAgICAicGF0dGVybiIgOiAiXkJQTkxbYS16QS1aMC05XXsxMn0kIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF91c2FnZV9hc19wbGFubmVkXzIuMC4wX1BhcmVudERhdGEiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNhdGVuYS1YIElEIGFuZCBtZXRhIGRhdGEgb2YgdGhlIHBhcmVudCBwYXJ0LiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImNyZWF0ZWRPbiIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRpbWVzdGFtcCB3aGVuIHRoZSByZWxhdGlvbiBiZXR3ZWVuIHRoZSBwYXJlbnQgcGFydCBhbmQgdGhlIGNoaWxkIHBhcnQgd2FzIGNyZWF0ZWQuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF91c2FnZV9hc19wbGFubmVkXzIuMC4wX0RhdGVUaW1lVHJhaXQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAicXVhbnRpdHkiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJRdWFudGl0eSBvZiB3aGljaCB0aGUgY2hpbGQgcGFydCB3aWxsIGJlIGFzc2VtYmxlZCBpbnRvIG9yIHVzZWQgaW4gdGhlIHBhcmVudCBwYXJ0LiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQucXVhbnRpdHlfMi4wLjBfSXRlbVF1YW50aXR5Q2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAibGFzdE1vZGlmaWVkT24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaW1lc3RhbXAgd2hlbiB0aGUgYXNzZW1ibHkgb3IgdXNhZ2UgcmVsYXRpb25zaGlwIGJldHdlZW4gcGFyZW50IHBhcnQgYW5kIGNoaWxkIHBhcnQgd2FzIGxhc3QgbW9kaWZpZWQuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF91c2FnZV9hc19wbGFubmVkXzIuMC4wX0RhdGVUaW1lVHJhaXQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAidmFsaWRpdHlQZXJpb2QiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcGVyaW9kIG9mIHRpbWUgZHVyaW5nIHdoaWNoIHRoZSBwYXJlbnQtY2hpbGQgcmVsYXRpb24gaXMgdmFsaWQuIFRoaXMgcmVsYXRlcyB0byB3aGV0aGVyIGEgY2hpbGQgcGFydCBjYW4gYmUgYnVpbHQgaW50byBvciB1c2VkIGluIHRoZSBwcm9kdWN0aW9uIG9mIHRoZSBwYXJlbnQgcGFydCBhdCBhIGdpdmVuIHRpbWUuXG5JZiBubyB2YWxpZGl0eSBwZXJpb2QgaXMgZ2l2ZW4gdGhlIHJlbGF0aW9uIGlzIGNvbnNpZGVyZWQgdmFsaWQgYXQgYW55IHBvaW50IGluIHRpbWUuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF91c2FnZV9hc19wbGFubmVkXzIuMC4wX1ZhbGlkaXR5UGVyaW9kQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiYnVzaW5lc3NQYXJ0bmVyIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHN1cHBsaWVyIG9mIHRoZSBnaXZlbiBjaGlsZCBpdGVtLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQuYnVzaW5lc3NfcGFydG5lcl9udW1iZXJfMi4wLjBfQnBubFRyYWl0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImNhdGVuYVhJZCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBDYXRlbmEtWCBJRCBvZiB0aGUgZ2l2ZW4gcGFydCAoZS5nLiB0aGUgY29tcG9uZW50KSwgdmFsaWQgZm9yIHRoZSBDYXRlbmEtWCBkYXRhc3BhY2UuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC51dWlkXzIuMC4wX1V1aWRWNFRyYWl0Ig0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgImNyZWF0ZWRPbiIsICJxdWFudGl0eSIsICJidXNpbmVzc1BhcnRuZXIiLCAiY2F0ZW5hWElkIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2luZ2xlX2xldmVsX3VzYWdlX2FzX3BsYW5uZWRfMi4wLjBfU2V0T2ZQYXJlbnRJdGVtc0NoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJTZXQgb2YgcGFyZW50IGl0ZW1zIHRoZSBnaXZlbiBjaGlsZCBvYmplY3Qgd2lsbCBiZSBhc3NlbWJsZWQgaW50byBvciB1c2VkIChvbmUgc3RydWN0dXJhbCBsZXZlbCB1cCkuIiwNCiAgICAgICAgInR5cGUiIDogImFycmF5IiwNCiAgICAgICAgIml0ZW1zIiA6IHsNCiAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaW5nbGVfbGV2ZWxfdXNhZ2VfYXNfcGxhbm5lZF8yLjAuMF9QYXJlbnREYXRhIg0KICAgICAgICB9LA0KICAgICAgICAidW5pcXVlSXRlbXMiIDogdHJ1ZQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF91c2FnZV9hc19wbGFubmVkXzIuMC4wX0xpc3RPZkN1c3RvbWVyc0NoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBIGxpc3Qgb2YgY3VzdG9tZXJzIGFuZCB0aGVpciByZWxhdGVkIHBhcmVudCBpdGVtcy4iLA0KICAgICAgICAidHlwZSIgOiAiYXJyYXkiLA0KICAgICAgICAiaXRlbXMiIDogew0KICAgICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHByb3ZpZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbiBlbnN1cmVzIHRoYXQgdGhlIEJQTkwgaXMgY29tcG9zZWQgb2YgcHJlZml4ICdCUE5MJywgMTAgZGlnaXRzIGFuZCB0d28gYWxwaGFudW1lcmljIGxldHRlcnMuIiwNCiAgICAgICAgICAicGF0dGVybiIgOiAiXkJQTkxbYS16QS1aMC05XXsxMn0kIg0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICB9LA0KICAicHJvcGVydGllcyIgOiB7DQogICAgImNhdGVuYVhJZCIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBDYXRlbmEtWCBJRCBvZiB0aGUgZ2l2ZW4gcGFydCAoZS5nLiB0aGUgY29tcG9uZW50KSwgdmFsaWQgZm9yIHRoZSBDYXRlbmEtWCBkYXRhc3BhY2UuIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC51dWlkXzIuMC4wX1V1aWRWNFRyYWl0Ig0KICAgIH0sDQogICAgInBhcmVudEl0ZW1zIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiU2V0IG9mIHBhcmVudCBwYXJ0cywgaW4gd2hpY2ggdGhlIGdpdmVuIGNoaWxkIG9iamVjdCB3aWxsIGJlIGFzc2VtYmxlZCBpbnRvIG9yIHVzZWQgKG9uZSBzdHJ1Y3R1cmFsIGxldmVsIHVwKS4iLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2luZ2xlX2xldmVsX3VzYWdlX2FzX3BsYW5uZWRfMi4wLjBfU2V0T2ZQYXJlbnRJdGVtc0NoYXJhY3RlcmlzdGljIg0KICAgIH0sDQogICAgImN1c3RvbWVycyIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIkEgbGlzdCBvZiBhbGwgY3VzdG9tZXJzIG9mIHRoaXMgaXRlbS4gSWYgdGhlIHBhcmVudCBpdGVtcyBpbiB3aGljaCB0aGlzIGl0ZW0gd2lsbCBiZSBhc3NlbWJsZWQgaW50byBvciB1c2VkIGFyZSBrbm93biwgdGhleSBzaG91bGQgYmUgbGlzdGVkIGFzIHdlbGwuIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNpbmdsZV9sZXZlbF91c2FnZV9hc19wbGFubmVkXzIuMC4wX0xpc3RPZkN1c3RvbWVyc0NoYXJhY3RlcmlzdGljIg0KICAgIH0NCiAgfSwNCiAgInJlcXVpcmVkIiA6IFsgImNhdGVuYVhJZCIsICJwYXJlbnRJdGVtcyIsICJjdXN0b21lcnMiIF0NCn0= + # urn:samm:io.catenax.idconversion:2.0.0#IdConversion + dXJuOnNhbW06aW8uY2F0ZW5heC5pZGNvbnZlcnNpb246Mi4wLjAjSWRDb252ZXJzaW9u: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIlRoZSBJZENvbnZlcnNpb24gYXNwZWN0IGRlYWxzIHdpdGggdGhlIENvbnZlcnNpb24gb2YgKHZlaGljbGUsIGdsb2JhbCkgSWRlbnRpZmllcnMgbGlrZSBWSU5zIGludG8gUHNldWRvbnltcyB3aGljaCBhcmUgbG9jYXRlZCBpbiBhbiBPRU0gZG9tYWluIChWQU5zLCBVVUlEcyBhbmQgb3RoZXIgY29uY2VwdHMpIGFuZCB2aWNlIHZlcnNhLiBBcyB0aGVyZSBhcmUgbXVsdGlwbGUgb3B0aW9ucyBmb3IgcmVwcmVzZW50aW5nIElkZW50aWZpZXJzIGFuZCBwZXJmb3JtaW5nIFBzZXVkb255bWl6YXRpb24sIHRoaXMgbW9kZWwgdXNlcyBhIGNvbWJpbmF0aW9uIG9mIHVucXVhbGlmaWVkIHZhbHVlcyBmb3IgaWRlbnRpZmllcnMgcGFpcmVkIHdpdGggbmFtZXNwYWNlcyAoZG9tYWlucywga2V5cykuIiwNCiAgInR5cGUiIDogIm9iamVjdCIsDQogICJwcm9wZXJ0aWVzIiA6IHsgfQ0KfQ== + # urn:samm:io.catenax.certificate_of_dismantler:1.0.1#CertificateOfDismantler + dXJuOnNhbW06aW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kaXNtYW50bGVyOjEuMC4xI0NlcnRpZmljYXRlT2ZEaXNtYW50bGVy: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIlJlcHJlc2VudHMgdGhlIGNlcnRpZmljYXRlIG9mIGRpc21hbnRlciAoQmVzY2hlaW5pZ3VuZyBnZW3DpMOfIMKnIDUgQWJzLiAzIEFsdGZhaHJ6ZXVnLVZlcm9yZG51bmcpIHdoaWNoIGlzIHJlcXVpcmVkIGluIEdlcm1hbnkgdG8gbGVnYWxseSBkaXNtYW50bGUgdmVoaWNsZXMiLA0KICAidHlwZSIgOiAib2JqZWN0IiwNCiAgImNvbXBvbmVudHMiIDogew0KICAgICJzY2hlbWFzIiA6IHsNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnNoYXJlZC5hZGRyZXNzX2NoYXJhY3RlcmlzdGljXzEuMC4xX1Rob3JvdWdoZmFyZVRlY2huaWNhbEtleUNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ2hhcmFjdGVyaXN0aWMgb2YgdGhlIHRlY2huaWNhbCBrZXkgb2YgYSB0aG9yb3VnaGZhcmUiLA0KICAgICAgICAiZW51bSIgOiBbICJTVFJFRVQiLCAiSU5EVVNUUklBTF9aT05FIiwgIk9USEVSIiwgIlJJVkVSIiwgIlNRVUFSRSIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnNoYXJlZC5hZGRyZXNzX2NoYXJhY3RlcmlzdGljXzEuMC4xX1RleHQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEZXNjcmliZXMgYSBQcm9wZXJ0eSB3aGljaCBjb250YWlucyBwbGFpbiB0ZXh0LiBUaGlzIGlzIGludGVuZGVkIGV4Y2x1c2l2ZWx5IGZvciBodW1hbiByZWFkYWJsZSBzdHJpbmdzLCBub3QgZm9yIGlkZW50aWZpZXJzLCBtZWFzdXJlbWVudCB2YWx1ZXMsIGV0Yy4iDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfVGhvcm91Z2hmYXJlRW50aXR5IiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyBmb3IgZGVmaW5pbmcgYSB0aG9yb3VnaGZhcmUgd2hpY2ggY2FuIGNvbnNpc3Qgb2YgYSB0eXBlIChlLmcuIFwiU1RSRUVUXCIpLCB2YWx1ZSAoZS5nLiBcIkJlcm5zdHJhw59lXCIpIGFuZCBudW1iZXIgKGUuZy4gXCI0NVwiKS4gTW9kZWwgZm9sbG93cyB0aGUgc3BlY2lmaWNhdGlvbiBvZiBCUERNLiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgInRlY2huaWNhbEtleSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRlY2huaWNhbCBrZXkgb2YgYSB0aG9yb3VnaGZhcmUuIEFzIHNwZWNpZmllZCBieSBCUERNLCB0aGlzIGNhbiBiZSBhIFwiU1RSRUVUXCIgb3IgYSBkaWZmZXJlbnQgdHlwZS4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfVGhvcm91Z2hmYXJlVGVjaG5pY2FsS2V5Q2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAidmFsdWUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJWYWx1ZSBvZiBhIHRob3JvdWdoZmFyZSwgZS5nLiBuYW1lIG9mIGEgc3RyZWV0LiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5zaGFyZWQuYWRkcmVzc19jaGFyYWN0ZXJpc3RpY18xLjAuMV9UZXh0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgIm51bWJlciIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIk51bWJlciBvZiBhIHRob3JvdWdoZmFyZS4gQXMgdXNlZCBkaWZmZXJlbnRseSBpbiBpbnRlcm5hdGlvbmFsIGNvbnRleHQsIHRoaXMgbnVtYmVyIGNhbiBjb250YWluIGJvdGggbnVtZXJpY2FsIGFuZCBhbHBoYW51bWVyaWNhbCB2YWx1ZXMiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfVGV4dCINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJ0ZWNobmljYWxLZXkiLCAidmFsdWUiLCAibnVtYmVyIiBdDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfTG9jYWxpdHlUZWNobmljYWxLZXlDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNoYXJhY3RlcmlzdGljIG9mIHRoZSB0ZWNobmljYWwga2V5IG9mIGEgbG9jYWxpdHkiLA0KICAgICAgICAiZW51bSIgOiBbICJCTE9DSyIsICJDSVRZIiwgIkRJU1RSSUNUIiwgIk9USEVSIiwgIlBPU1RfT0ZGSUNFX0NJVFkiLCAiUVVBUlRFUiIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnNoYXJlZC5hZGRyZXNzX2NoYXJhY3RlcmlzdGljXzEuMC4xX0xvY2FsaXR5RW50aXR5IiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyBmb3IgZGVmaW5pbmcgYSBsb2NhbGl0eSB3aGljaCBiZWxvbmdzIHRvIGFuIGFkZHJlc3MgYW5kIHdoaWNoIGNvbnNpc3RzIG9mIGEgdHlwZSAoZS5nLiBcIkNJVFlcIikgYW5kIHZhbHVlIChlLmcuIFwiTWFubmhlaW1cIikuIE1vZGVsIGZvbGxvd3MgdGhlIHNwZWNpZmljYXRpb24gb2YgQlBETS4iLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJ0ZWNobmljYWxLZXkiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUZWNobmljYWwga2V5IG9mIGEgbG9jYWxpdHkiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfTG9jYWxpdHlUZWNobmljYWxLZXlDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJ2YWx1ZSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlZhbHVlIG9mIGEgbG9jYWxpdHksIGUuZy4gbmFtZSBvZiBhIGNpdHkgKFwiTWFubmhlaW1cIikuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNoYXJlZC5hZGRyZXNzX2NoYXJhY3RlcmlzdGljXzEuMC4xX1RleHQiDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicmVxdWlyZWQiIDogWyAidGVjaG5pY2FsS2V5IiwgInZhbHVlIiBdDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfUHJlbWlzZVRlY2huaWNhbEtleUNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ2hhcmFjdGVyaXN0aWMgb2YgdGhlIHRlY2huaWNhbCBrZXkgb2YgYSBwcmVtaXNlIiwNCiAgICAgICAgImVudW0iIDogWyAiQlVJTERJTkciLCAiSEFSQk9VUiIsICJMRVZFTCIsICJPVEhFUiIsICJST09NIiwgIlNVSVRFIiwgIlVOSVQiLCAiV0FSRUhPVVNFIiBdDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfUHJlbWlzZUVudGl0eSIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ2hhcmFjdGVyaXN0aWMgZm9yIGRlZmluaW5nIGEgcHJlbWlzZSB3aGljaCBjb25zaXN0cyBvZiBhIHRlY2huaWNhbCBrZXkgKGUuZy4gXCJCVUlMRElOR1wiIG9yIFwiT1RIRVJcIikgYW5kIGEgdmFsdWUgKGUuZy4gXCJXZXJrIDFcIikuIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAidGVjaG5pY2FsS2V5IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGVjaG5pY2FsIGtleSBvZiBhIHByZW1pc2UiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfUHJlbWlzZVRlY2huaWNhbEtleUNoYXJhY3RlcmlzdGljIg0KICAgICAgICAgIH0sDQogICAgICAgICAgInZhbHVlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVmFsdWUgb2YgYSBwcmVtaXNlLCBlLmcuIG5hbWUgb3IgZGVzaWduYXRpb24gb2YgYSBwYXJ0aWN1bGFyIHNpdGUiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfVGV4dCINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJ0ZWNobmljYWxLZXkiLCAidmFsdWUiIF0NCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5zaGFyZWQuYWRkcmVzc19jaGFyYWN0ZXJpc3RpY18xLjAuMV9Qb3N0YWxEZWxpdmVyeVBvaW50VGVjaG5pY2FsS2V5Q2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyBvZiB0aGUgdGVjaG5pY2FsIGtleSBvZiBhIHBvc3RhbCBkZWxpdmVyeSBwb2ludCIsDQogICAgICAgICJlbnVtIiA6IFsgIklOVEVSVVJCQU5fREVMSVZFUllfUE9JTlQiLCAiTUFJTF9TVEFUSU9OIiwgIk1BSUxCT1giLCAiT1RIRVIiLCAiUE9TVF9PRkZJQ0VfQk9YIiBdDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfUG9zdGFsRGVsaXZlcnlQb2ludEVudGl0eSIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ2hhcmFjdGVyaXN0aWMgZm9yIGRlZmluaW5nIGEgcG9zdGFsIGRlbGl2ZXJ5IHBvaW50IHdoaWNoIGNvbnNpc3RzIG9mIGEgdGVjaG5pY2FsIGtleSAoZS5nLiBcIk1BSUxCT1hcIiBvciBcIk9USEVSXCIpIGFuZCBhIHZhbHVlLiBNb2RlbCBmb2xsb3dzIHRoZSBzcGVjaWZpY2F0aW9uIG9mIEJQRE0uIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAidGVjaG5pY2FsS2V5IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGVjaG5pY2FsIGtleSBvZiBhIHBvc3RhbCBkZWxpdmVyeSBwb2ludCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5zaGFyZWQuYWRkcmVzc19jaGFyYWN0ZXJpc3RpY18xLjAuMV9Qb3N0YWxEZWxpdmVyeVBvaW50VGVjaG5pY2FsS2V5Q2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAidmFsdWUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJWYWx1ZSBvZiBhIHBvc3RhbCBkZWxpdmVyeSBwb2ludCwgZS5nLiBkZXNpZ25hdGlvbiBvZiBhIGdhdGUiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfVGV4dCINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJ0ZWNobmljYWxLZXkiLCAidmFsdWUiIF0NCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5zaGFyZWQuYWRkcmVzc19jaGFyYWN0ZXJpc3RpY18xLjAuMV9Db3VudHJ5VHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJSZWd1bGFyIGV4cHJlc3Npb24gZm9yIGRlc2lnbmF0aW9uIG9mIGEgc2hvcnQgbmFtZSBvZiBhIGNvdW50cnkgYXMgZGVmaW5lZCBpbiBJU08gMzE2Ni0yIiwNCiAgICAgICAgInBhdHRlcm4iIDogIihbQS1aXXsyfS1bQS1aMC05XXsxLDN9fCkiDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfQ291bnRyeUVudGl0eSIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ2hhcmFjdGVyaXN0aWMgb2YgYSBjb3VudHJ5IGJlbG9uZ2luZyB0byBhbiBhZGRyZXNzIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAic2hvcnROYW1lIiA6IHsNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNoYXJlZC5hZGRyZXNzX2NoYXJhY3RlcmlzdGljXzEuMC4xX0NvdW50cnlUcmFpdCINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJzaG9ydE5hbWUiIF0NCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5zaGFyZWQuYWRkcmVzc19jaGFyYWN0ZXJpc3RpY18xLjAuMV9Qb3N0Q29kZVRyYWl0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUmVndWxhciBleHByZXNzaW9uIGZvciBwb3N0IGNvZGVzIiwNCiAgICAgICAgInBhdHRlcm4iIDogIl5bYS16MC05XVthLXowLTlcXC0gXXswLDEwfSQiDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfUG9zdENvZGVUZWNobmljYWxLZXlDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNoYXJhY3RlcmlzdGljIGZvciB0aGUgdGVjaG5pY2FsIGtleSBvZiBhIHBvc3QgY29kZSIsDQogICAgICAgICJlbnVtIiA6IFsgIkNFREVYIiwgIkxBUkdFX01BSUxfVVNFUiIsICJPVEhFUiIsICJQT1NUX0JPWCIsICJSRUdVTEFSIiBdDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfUG9zdENvZGVFbnRpdHkiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNoYXJhY3RlcmlzdGljIGZvciBkZWZpbmluZyBhIHBvc3Rjb2RlIHdoaWNoIGNhbiBjb25zaXN0IG9mIGEgdHlwZSAoZS5nLiBcIlJFR1VMQVJcIiBmb3IgemlwIGNvZGVzKSBhbmQgYSB2YWx1ZSAoZS5nLiBcIjY4MTYxXFwxMlwiKS4gTW9kZWwgZm9sbG93cyB0aGUgc3BlY2lmaWNhdGlvbiBvZiBCUERNLiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgInZhbHVlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHZhbHVlIG9mIGEgcG9zdCBjb2RlIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNoYXJlZC5hZGRyZXNzX2NoYXJhY3RlcmlzdGljXzEuMC4xX1Bvc3RDb2RlVHJhaXQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAidGVjaG5pY2FsS2V5IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHRlY2huaWNhbCBrZXkgb2YgYSBwb3N0IGNvZGUiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfUG9zdENvZGVUZWNobmljYWxLZXlDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJ2YWx1ZSIsICJ0ZWNobmljYWxLZXkiIF0NCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5zaGFyZWQuYWRkcmVzc19jaGFyYWN0ZXJpc3RpY18xLjAuMV9Qb3N0YWxBZGRyZXNzIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBIGNoYXJhY3RlcmlzdGljIHRvIGV4cHJlc3MgdGhlIHBvc3RhbCBhZHJlc3MgYW5kIHdoaWNoIGlzIGludGVuZGVkIHRvIGJlIHJlZmVyZW5jZWQgYnkgb3RoZXIgYXNwZWN0cyIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgInRob3JvdWdoZmFyZSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlN0cmVldCBvciB0aG9yb3VnaCByb2FkIG5hbWUiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfVGhvcm91Z2hmYXJlRW50aXR5Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImxvY2FsaXR5IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiTG9jYWxpdHkgYmVsb25naW5nIHRvIGFuIGFkZHJlc3MiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfTG9jYWxpdHlFbnRpdHkiDQogICAgICAgICAgfSwNCiAgICAgICAgICAicHJlbWlzZSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlByZW1pc2Ugb2YgYW4gYWRkcmVzcywgZS5nLiBhIHNwZWNpZmljIFwiQlVJTERJTkdcIiBidXQgY2FuIGFsc28gYmUgdXNlZCBmb3IgbmFtaW5nIGEgcGFydGljdWxhciBzaXRlIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNoYXJlZC5hZGRyZXNzX2NoYXJhY3RlcmlzdGljXzEuMC4xX1ByZW1pc2VFbnRpdHkiDQogICAgICAgICAgfSwNCiAgICAgICAgICAicG9zdGFsRGVsaXZlcnlQb2ludCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkRlbGl2ZXJ5IHBvaW50LCBlLmcuIGRlc2lnbmF0aW9uIG9mIGEgZ2F0ZSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5zaGFyZWQuYWRkcmVzc19jaGFyYWN0ZXJpc3RpY18xLjAuMV9Qb3N0YWxEZWxpdmVyeVBvaW50RW50aXR5Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImNvdW50cnkiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDb3VudHJ5IG9mIGFuIGFkZHJlc3MiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfQ291bnRyeUVudGl0eSINCiAgICAgICAgICB9LA0KICAgICAgICAgICJwb3N0Q29kZSIgOiB7DQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5zaGFyZWQuYWRkcmVzc19jaGFyYWN0ZXJpc3RpY18xLjAuMV9Qb3N0Q29kZUVudGl0eSINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJ0aG9yb3VnaGZhcmUiLCAibG9jYWxpdHkiLCAiY291bnRyeSIsICJwb3N0Q29kZSIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5vcGVubWFudWZhY3R1cmluZ19jaGFyYWN0ZXJpc3RpY18yLjAuMF9UZXh0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGVzY3JpYmVzIGEgUHJvcGVydHkgd2hpY2ggY29udGFpbnMgcGxhaW4gdGV4dC4gVGhpcyBpcyBpbnRlbmRlZCBleGNsdXNpdmVseSBmb3IgaHVtYW4gcmVhZGFibGUgc3RyaW5ncywgbm90IGZvciBpZGVudGlmaWVycywgbWVhc3VyZW1lbnQgdmFsdWVzLCBldGMuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LmNlcnRpZmljYXRlX29mX2Rpc21hbnRsZXJfMS4wLjFfRGF0ZUNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJmb3JtYXQiIDogImRhdGUiLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogImNoYXJhY3RlcmlzdGljIHRvIGRlc2NyaWJlIGEgZGF0ZSINCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5zaGFyZWQuY29udGFjdF9pbmZvcm1hdGlvbl8xLjAuMF9XZWJzaXRlQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImZvcm1hdCIgOiAidXJpIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBZGRyZXNzIG9mIHRoZSB3ZWJzaXRlIg0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnNoYXJlZC5jb250YWN0X2luZm9ybWF0aW9uXzEuMC4wX1Bob25lTnVtYmVyVHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDb25zdHJhaW50IHRvIGFsbG93IG9ubHkgbnVtYmVycywgd2hpdGVzcGFjZXMgYW5kIGFuIG9wdGlvbmFsIGxlYWRpbmcgKyBzaWduLiIsDQogICAgICAgICJwYXR0ZXJuIiA6ICJeWytdP1swLTkgXSskIg0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnNoYXJlZC5jb250YWN0X2luZm9ybWF0aW9uXzEuMC4wX0VNYWlsVHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJSZWd1bGFyIGV4cHJlc3Npb24gZm9yIG1haWwgYWRkcmVzcyBhcyBkZWZpbmVkIGluIFczQyAoc2VlIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2lucHV0Lmh0bWwjdmFsaWQtZS1tYWlsLWFkZHJlc3MpIiwNCiAgICAgICAgInBhdHRlcm4iIDogIl5bYS16QS1aMC05LiEjJCUm4oCZKitcXC89P15fYHt8fX4tXStAW2EtekEtWjAtOS1dKyg/OlxcLlthLXpBLVowLTktXSspKiQiDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmNvbnRhY3RfaW5mb3JtYXRpb25fMS4wLjBfQ29udGFjdENoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyBkZXNjcmliaW5nIGluZm9ybWF0aW9uIG9uIGhvdyB0byBjb250YWN0IGFuIG9yZ2FuaXphdGlvbiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgIndlYnNpdGUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJXZWJzaXRlIG9mIHRoZSBjb250YWN0LiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5zaGFyZWQuY29udGFjdF9pbmZvcm1hdGlvbl8xLjAuMF9XZWJzaXRlQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAicGhvbmVOdW1iZXIiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJQaG9uZSBudW1iZXIgd2l0aCBjb3VudHJ5IGFuZCBhcmVhIGNvZGUiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmNvbnRhY3RfaW5mb3JtYXRpb25fMS4wLjBfUGhvbmVOdW1iZXJUcmFpdCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJlbWFpbCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkFuIGVtYWlsIGFkZHJlc3MiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmNvbnRhY3RfaW5mb3JtYXRpb25fMS4wLjBfRU1haWxUcmFpdCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJmYXhOdW1iZXIiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJGYXggbnVtYmVyIHdpdGggY291bnRyeSBhbmQgYXJlYSBjb2RlIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNoYXJlZC5jb250YWN0X2luZm9ybWF0aW9uXzEuMC4wX1Bob25lTnVtYmVyVHJhaXQiDQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICB9LA0KICAicHJvcGVydGllcyIgOiB7DQogICAgImRpc21hbnRsZXJBZGRyZXNzIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiYWRkcmVzcyBkYXRhIGZvciB0aGUgZGlzbWFudGxpbmcgY29tcGFueSIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5zaGFyZWQuYWRkcmVzc19jaGFyYWN0ZXJpc3RpY18xLjAuMV9Qb3N0YWxBZGRyZXNzIg0KICAgIH0sDQogICAgImNlcnRpZmljYXRlTnVtYmVyIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAibGljZW5zZSBudW1iZXIgb2YgdGhlIGxpY2Vuc2UiLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLm9wZW5tYW51ZmFjdHVyaW5nX2NoYXJhY3RlcmlzdGljXzIuMC4wX1RleHQiDQogICAgfSwNCiAgICAiaXNzdWVEYXRlIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiaXNzdWUgZGF0ZSBvZiB0aGUgbGljZW5zZSIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5jZXJ0aWZpY2F0ZV9vZl9kaXNtYW50bGVyXzEuMC4xX0RhdGVDaGFyYWN0ZXJpc3RpYyINCiAgICB9LA0KICAgICJleHBpcnlEYXRlIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiZXhwaXJhdGlvbiBkYXRlIG9mIHRoZSBsaWNlbnNlIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LmNlcnRpZmljYXRlX29mX2Rpc21hbnRsZXJfMS4wLjFfRGF0ZUNoYXJhY3RlcmlzdGljIg0KICAgIH0sDQogICAgInByb2R1Y2VyTnVtYmVyIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiZGVzY3JpYmVzIHRoZSBpZGVudGlmaWNhdGlvbiBvZiB0aGUgcHJvZHVjaW5nIGNvbXBhbnkiLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLm9wZW5tYW51ZmFjdHVyaW5nX2NoYXJhY3RlcmlzdGljXzIuMC4wX1RleHQiDQogICAgfSwNCiAgICAiY2FycmllcklkZW50aWZpY2F0aW9uIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiZGVzY3JpYmVzIHRoZSBpZGVudGlmaWNhdGlvbiBvZiB0aGUgdHJhbnNwb3J0aW5nIGNvbXBhbnkiLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLm9wZW5tYW51ZmFjdHVyaW5nX2NoYXJhY3RlcmlzdGljXzIuMC4wX1RleHQiDQogICAgfSwNCiAgICAiZGlzcG9zZXJOdW1iZXIiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJkZXNjcmliZXMgdGhlIGlkZW50aWZpY2F0aW9uIG9mIHRoZSBkaXNwb3NhbCBjb21wYW55IiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5vcGVubWFudWZhY3R1cmluZ19jaGFyYWN0ZXJpc3RpY18yLjAuMF9UZXh0Ig0KICAgIH0sDQogICAgImRpc21hbnRsZXJDb250YWN0IiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiZGlzbWFudGxpbmcgY29tcGFueSBjb250YWN0IGluZm9ybWF0aW9uIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNoYXJlZC5jb250YWN0X2luZm9ybWF0aW9uXzEuMC4wX0NvbnRhY3RDaGFyYWN0ZXJpc3RpYyINCiAgICB9LA0KICAgICJhdWRpdG9yQWRkcmVzcyIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogInRoZSBhZGRyZXNzIG9mIHRoZSBhdWRpdG9yIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNoYXJlZC5hZGRyZXNzX2NoYXJhY3RlcmlzdGljXzEuMC4xX1Bvc3RhbEFkZHJlc3MiDQogICAgfSwNCiAgICAiZ292ZXJubWVudEFkZHJlc3MiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJ0aGUgYWRkcmVzcyBvZiB0aGUgcmVzcG9uc2libGUgZ292ZXJubWVudCBhZ2VuY3kiLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2hhcmVkLmFkZHJlc3NfY2hhcmFjdGVyaXN0aWNfMS4wLjFfUG9zdGFsQWRkcmVzcyINCiAgICB9LA0KICAgICJhdWRpdG9yQ29udGFjdCIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogInRoZSBhZGRyZXNzIG9mIHRoZSBhdWRpdG9yIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNoYXJlZC5jb250YWN0X2luZm9ybWF0aW9uXzEuMC4wX0NvbnRhY3RDaGFyYWN0ZXJpc3RpYyINCiAgICB9DQogIH0sDQogICJyZXF1aXJlZCIgOiBbICJkaXNtYW50bGVyQWRkcmVzcyIsICJjZXJ0aWZpY2F0ZU51bWJlciIsICJpc3N1ZURhdGUiLCAiZXhwaXJ5RGF0ZSIsICJkaXNwb3Nlck51bWJlciIsICJkaXNtYW50bGVyQ29udGFjdCIsICJhdWRpdG9yQWRkcmVzcyIsICJnb3Zlcm5tZW50QWRkcmVzcyIsICJhdWRpdG9yQ29udGFjdCIgXQ0KfQ== + # urn:samm:io.catenax.eol_story:2.0.0#EndOfLife + dXJuOnNhbW06aW8uY2F0ZW5heC5lb2xfc3Rvcnk6Mi4wLjAjRW5kT2ZMaWZl: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIkFzcGVjdCBmb3IgRW5kIG9mIExpZmUgU3RvcnkgZm9yIHRoZSBEaXNtYW50bGVyIiwNCiAgInR5cGUiIDogIm9iamVjdCIsDQogICJjb21wb25lbnRzIiA6IHsNCiAgICAic2NoZW1hcyIgOiB7DQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5lb2xfc3RvcnlfMi4wLjBfRGlzYXNzZW1ibHlTdGF0dXMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJQb3NzaWJsZSBzdGF0dXMgb2YgZGlzYXNzZW1ibHkiLA0KICAgICAgICAiZW51bSIgOiBbICJhc3NlbWJsZWQiLCAiZGlzYXNzZW1ibGVkIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguZW9sX3N0b3J5XzIuMC4wX0hlYWx0aFN0YXR1cyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlBvc3NpYmxlIHN0YXR1cyBvZiBjb25kaXRpb24gb2YgYSB2ZWhpY2xlIG9yIHBhcnQuIiwNCiAgICAgICAgImVudW0iIDogWyAiaW4gcnVubmluZyBjb25kaXRpb24iLCAicmVwYWlyIHJlcXVpcmVkIiwgImJyb2tlbiIsICJub3QgdGVzdGVkIiwgImluY29tcGxldGUiIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5lb2xfc3RvcnlfMi4wLjBfUmVjeWNsaW5nU3RhdHVzIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUG9zc2libGUgc3RhdHVzIGF1ZiBhIHZlaGljbGUgb3IgcGFydCIsDQogICAgICAgICJlbnVtIiA6IFsgInJlY3ljbGVkIiwgIm5vdCByZWN5Y2xlZCIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGltZXN0YW1wIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJwYXR0ZXJuIiA6ICItPyhbMS05XVswLTldezMsfXwwWzAtOV17M30pLSgwWzEtOV18MVswLTJdKS0oMFsxLTldfFsxMl1bMC05XXwzWzAxXSlUKChbMDFdWzAtOV18MlswLTNdKTpbMC01XVswLTldOlswLTVdWzAtOV0oXFwuWzAtOV0rKT98KDI0OjAwOjAwKFxcLjArKT8pKShafChcXCt8LSkoKDBbMC05XXwxWzAtM10pOlswLTVdWzAtOV18MTQ6MDApKT8iLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkRlc2NyaWJlcyBhIFByb3BlcnR5IHdoaWNoIGNvbnRhaW5zIHRoZSBkYXRlIGFuZCB0aW1lIHdpdGggYW4gb3B0aW9uYWwgdGltZXpvbmUuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfQm9vbGVhbiIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJib29sZWFuIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJSZXByZXNlbnRzIGEgYm9vbGVhbiB2YWx1ZSAoaS5lLiBhIFwiZmxhZ1wiKS4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguZW9sX3N0b3J5XzIuMC4wX0xhc3RNaWxlYWdlIiA6IHsNCiAgICAgICAgInR5cGUiIDogIm51bWJlciINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5lb2xfc3RvcnlfMi4wLjBfU3BhcmVQYXJ0UXVhbGl0eSIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlBvc3NpYmxlIHN0YXR1cyBvZiBjb25kaXRpb246IEE9cXVhbGl0eSB2ZXJ5IGdvb2Q7IEI9cXVhbGl0eSBub3JtYWwgdXNlZDsgQz1xdWFsaXR5IGRlZmVjdGl2ZSBvciB3aXRoIGRlZmVjdHM7IE49bmV3IiwNCiAgICAgICAgImVudW0iIDogWyAiQSIsICJCIiwgIkMiLCAiTiIgXQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgInByb3BlcnRpZXMiIDogew0KICAgICJkaXNhc3NlbWJseVN0YXR1cyIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIkluZGljYXRlcyB0aGUgc3RhdHVzIG9mIGRpc2Fzc2VtYmx5IiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmVvbF9zdG9yeV8yLjAuMF9EaXNhc3NlbWJseVN0YXR1cyINCiAgICB9LA0KICAgICJoZWFsdGhTdGF0dXMiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgaGVhbHRoIGNvbmRpdGlvbiBvZiB0aGUgdmVoaWNsZSBvciBzcGFyZSBwYXJ0LiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5lb2xfc3RvcnlfMi4wLjBfSGVhbHRoU3RhdHVzIg0KICAgIH0sDQogICAgInJlY3ljbGluZ1N0YXR1cyIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSByZWN5Y2xpbmcgc3RhdHVzIG9mIGEgdmVoaWNsZSBvciBwYXJ0LiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5lb2xfc3RvcnlfMi4wLjBfUmVjeWNsaW5nU3RhdHVzIg0KICAgIH0sDQogICAgImRhdGVPZlJlY2VwdGlvbkdNVCIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIkdpdmVzIHRoZSBkYXRlIG9mIHJlY2VwdGlvbiBvZiB0aGUgdmVoaWNsZSBpbiBHTVQgdGltZSB6b25lIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGltZXN0YW1wIg0KICAgIH0sDQogICAgImNlcnRpZmljYXRlT2ZEZXN0cnVjdGlvbiIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIkluZGljYXRlcyBpZiBhbiBjZXJ0aWZpY2F0ZSBvZiBkZXN0cnVjdGlvbiBpcyBwcmVzZW50IiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfQm9vbGVhbiINCiAgICB9LA0KICAgICJsYXN0TWlsZWFnZSIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIkdpdmVzIHRoZSBsYXN0IG1pbGVhZ2UsIHdoaWNoIGNhbiBiZSByZWFkIG9uIHRoZSB2ZWhpY2xlIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmVvbF9zdG9yeV8yLjAuMF9MYXN0TWlsZWFnZSINCiAgICB9LA0KICAgICJkYXRlT2ZTY3JhcHBpbmdHTVQiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJHaXZlcyB0aGUgZGF0ZSBvZiBzY3JhcHBpbmcgb2YgdGhlIHZlaGljbGUgb3IgcGFydCBpbiBHTVQgdGltZSB6b25lIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGltZXN0YW1wIg0KICAgIH0sDQogICAgInNwYXJlUGFydFF1YWxpdHkiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJJbmRpY2F0ZXMgdGhlIHF1YWxpdHkgb2YgYSBzcGFyZSBwYXJ0IiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmVvbF9zdG9yeV8yLjAuMF9TcGFyZVBhcnRRdWFsaXR5Ig0KICAgIH0sDQogICAgImRhdGVPZkRpc3NhbWJseUdNVCIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIkdpdmVzIHRoZSBkYXRlIG9mIGRpc3NhbWJseSBvZiB0aGUgcGFydCBpbiBHTVQgdGltZSB6b25lIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGltZXN0YW1wIg0KICAgIH0NCiAgfSwNCiAgInJlcXVpcmVkIiA6IFsgImRpc2Fzc2VtYmx5U3RhdHVzIiwgImhlYWx0aFN0YXR1cyIsICJyZWN5Y2xpbmdTdGF0dXMiLCAiZGF0ZU9mUmVjZXB0aW9uR01UIiwgImNlcnRpZmljYXRlT2ZEZXN0cnVjdGlvbiIgXQ0KfQ== + # urn:samm:io.catenax.esr_certificates.esr_certificate:1.0.1#EsrCertificate + dXJuOnNhbW06aW8uY2F0ZW5heC5lc3JfY2VydGlmaWNhdGVzLmVzcl9jZXJ0aWZpY2F0ZToxLjAuMSNFc3JDZXJ0aWZpY2F0ZQ: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIkVudmlyb25tZW50YWwgYW5kIFNvY2lhbCBSZXNwb25zaWJpbGl0eSAoRVNSKSBjZXJ0aWZpY2F0ZSBvZiB0aGUgQnVzaW5lc3MgUGFydG5lciAoZS5nLiBTdXBwbGllcikiLA0KICAidHlwZSIgOiAib2JqZWN0IiwNCiAgImNvbXBvbmVudHMiIDogew0KICAgICJzY2hlbWFzIiA6IHsNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LmVzcl9jZXJ0aWZpY2F0ZXMuZXNyX2NlcnRpZmljYXRlXzEuMC4xX0NlcnRpZmljYXRlU3RhdGUiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImVudW0iIDogWyAidmFsaWQiLCAiaW52YWxpZCIsICJ1bmtub3duIiBdDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfMS4wLjFfQ2FudGVuYXhCcG4iIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJTdHJpbmcgZmllbGQgdmFsdWUsIG5vIGxhbmd1YWdlIHRhZ3MiLA0KICAgICAgICAicGF0dGVybiIgOiAiXihCUE4pKEx8U3xBKShcXGR7OH0pKFthLXpBLVowLTldezR9KSQiDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfMS4wLjFfU3RyaW5nVmFsdWUiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJTdHJpbmcgZmllbGQgdmFsdWUsIG5vIGxhbmd1YWdlIHRhZ3MiDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfMS4wLjFfQ291bnRyeUNvZGVzIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiSVNPIDMxNjYtMiBBTFBIQS0yIGxldHRlciBjb3VudHJ5IGxpc3QiLA0KICAgICAgICAiZW51bSIgOiBbICJBRiIsICJBWCIsICJBTCIsICJEWiIsICJBUyIsICJBRCIsICJBTyIsICJBSSIsICJBUSIsICJBRyIsICJBUiIsICJBTSIsICJBVyIsICJBVSIsICJBVCIsICJBWiIsICJCUyIsICJCSCIsICJCRCIsICJCQiIsICJCWSIsICJCRSIsICJCWiIsICJCSiIsICJCTSIsICJCVCIsICJCTyIsICJCUSIsICJCQSIsICJCVyIsICJCViIsICJCUiIsICJJTyIsICJCTiIsICJCRyIsICJCRiIsICJCSSIsICJLSCIsICJDTSIsICJDQSIsICJDViIsICJLWSIsICJDRiIsICJURCIsICJDTCIsICJDTiIsICJDWCIsICJDQyIsICJDTyIsICJLTSIsICJDRyIsICJDRCIsICJDSyIsICJDUiIsICJDSSIsICJIUiIsICJDVSIsICJDVyIsICJDWSIsICJDWiIsICJESyIsICJESiIsICJETSIsICJETyIsICJFQyIsICJFRyIsICJTViIsICJHUSIsICJFUiIsICJFRSIsICJFVCIsICJGSyIsICJGTyIsICJGSiIsICJGSSIsICJGUiIsICJHRiIsICJQRiIsICJURiIsICJHQSIsICJHTSIsICJHRSIsICJERSIsICJHSCIsICJHSSIsICJHUiIsICJHTCIsICJHRCIsICJHUCIsICJHVSIsICJHVCIsICJHRyIsICJHTiIsICJHVyIsICJHWSIsICJIVCIsICJITSIsICJWQSIsICJITiIsICJISyIsICJIVSIsICJJUyIsICJJTiIsICJJRCIsICJJUiIsICJJUSIsICJJRSIsICJJTSIsICJJTCIsICJJVCIsICJKTSIsICJKUCIsICJKRSIsICJKTyIsICJLWiIsICJLRSIsICJLSSIsICJLUCIsICJLUiIsICJLVyIsICJLRyIsICJMQSIsICJMViIsICJMQiIsICJMUyIsICJMUiIsICJMWSIsICJMSSIsICJMVCIsICJMVSIsICJNTyIsICJNSyIsICJNRyIsICJNVyIsICJNWSIsICJNViIsICJNTCIsICJNVCIsICJNSCIsICJNUSIsICJNUiIsICJNVSIsICJZVCIsICJNWCIsICJGTSIsICJNRCIsICJNQyIsICJNTiIsICJNRSIsICJNUyIsICJNQSIsICJNWiIsICJNTSIsICJOQSIsICJOUiIsICJOUCIsICJOTCIsICJOQyIsICJOWiIsICJOSSIsICJORSIsICJORyIsICJOVSIsICJORiIsICJNUCIsICJOTyIsICJPTSIsICJQSyIsICJQVyIsICJQUyIsICJQQSIsICJQRyIsICJQWSIsICJQRSIsICJQSCIsICJQTiIsICJQTCIsICJQVCIsICJQUiIsICJRQSIsICJSRSIsICJSTyIsICJSVSIsICJSVyIsICJCTCIsICJTSCIsICJLTiIsICJMQyIsICJNRiIsICJQTSIsICJWQyIsICJXUyIsICJTTSIsICJTVCIsICJTQSIsICJTTiIsICJSUyIsICJTQyIsICJTTCIsICJTRyIsICJTWCIsICJTSyIsICJTSSIsICJTQiIsICJTTyIsICJaQSIsICJHUyIsICJTUyIsICJFUyIsICJMSyIsICJTRCIsICJTUiIsICJTSiIsICJTWiIsICJTRSIsICJDSCIsICJTWSIsICJUVyIsICJUSiIsICJUWiIsICJUSCIsICJUTCIsICJURyIsICJUSyIsICJUTyIsICJUVCIsICJUTiIsICJUUiIsICJUTSIsICJUQyIsICJUViIsICJVRyIsICJVQSIsICJBRSIsICJHQiIsICJVUyIsICJVTSIsICJVWSIsICJVWiIsICJWVSIsICJWRSIsICJWTiIsICJWRyIsICJWSSIsICJXRiIsICJFSCIsICJZRSIsICJaTSIsICJaVyIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LmVzcl9jZXJ0aWZpY2F0ZXMuZXNyX2NlcnRpZmljYXRlXzEuMC4xX0RhdGVWYWx1ZSIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZm9ybWF0IiA6ICJkYXRlIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJJU08gODYwMSAgWVlZWS1NTS1ERCBkYXRlIHdpdGhvdXQgdGltZSB6b25lIg0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LmVzcl9jZXJ0aWZpY2F0ZXMuZXNyX2NlcnRpZmljYXRlXzEuMC4xX0NlcnRpZmljYXRlTmFtZUVudW1lcmF0aW9uIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJlbnVtIiA6IFsgIklTMCAxNDAwMSIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LmVzcl9jZXJ0aWZpY2F0ZXMuZXNyX2NlcnRpZmljYXRlXzEuMC4xX0NlcnRpZmljYXRlRGF0YUNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAiY2F0ZW5heEJwbiIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNhdGVuYS1YIEJQTiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5lc3JfY2VydGlmaWNhdGVzLmVzcl9jZXJ0aWZpY2F0ZV8xLjAuMV9DYW50ZW5heEJwbiINCiAgICAgICAgICB9LA0KICAgICAgICAgICJidXNpbmVzc1BhcnRuZXJOYW1lIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ29tcGFueSBOYW1lIGFzIGxpc3RlZCBieSB0aGUgU2VydmljZSBQcm92aWRlciBhbmQgdG8gd2hpY2ggdGhlIEJQIGFzc2lnZW5kIHRoZSBjZXJ0aWZpY2F0ZSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5lc3JfY2VydGlmaWNhdGVzLmVzcl9jZXJ0aWZpY2F0ZV8xLjAuMV9TdHJpbmdWYWx1ZSINCiAgICAgICAgICB9LA0KICAgICAgICAgICJidXNpbmVzc1BhcnRuZXJTdHJlZXQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDb21wYW55IFN0cmVldCBhcyBsaXN0ZWQgYnkgdGhlIFNlcnZpY2UgUHJvdmlkZXIgYW5kIHRvIHdoaWNoIHRoZSBCUCBhc3NpZ2VuZCB0aGUgY2VydGlmaWNhdGUiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfMS4wLjFfU3RyaW5nVmFsdWUiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiYnVzaW5lc3NQYXJ0bmVyWmlwIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ29tcGFueSBaSVAgY29kZSBhcyBsaXN0ZWQgYnkgdGhlIFNlcnZpY2UgUHJvdmlkZXIgYW5kIHRvIHdoaWNoIHRoZSBCUCBhc3NpZ2VuZCB0aGUgY2VydGlmaWNhdGUiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfMS4wLjFfU3RyaW5nVmFsdWUiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiYnVzaW5lc3NQYXJ0bmVyQ2l0eSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNvbXBhbnkgY2l0eSBhcyBsaXN0ZWQgYnkgdGhlIFNlcnZpY2UgUHJvdmlkZXIgYW5kIHRvIHdoaWNoIHRoZSBCUCBhc3NpZ2VuZCB0aGUgY2VydGlmaWNhdGUiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfMS4wLjFfU3RyaW5nVmFsdWUiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiYnVzaW5lc3NQYXJ0bmVyUmVnaW9uIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ29tcGFueSByZWdpb24gYXMgbGlzdGVkIGJ5IHRoZSBTZXJ2aWNlIFByb3ZpZGVyIGFuZCB0byB3aGljaCB0aGUgQlAgYXNzaWduZWQgdGhlIGNlcnRpZmljYXRlLiBNYW5kYXRvcnkgaW4gc29tZSBjb3VudHJpZXMgbGlrZSBVU0EiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfMS4wLjFfU3RyaW5nVmFsdWUiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiYnVzaW5lc3NQYXJ0bmVyQ291bnRyeUNvZGUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJJU08gMzE2Ni0yIGNvbXBhbnkgY291bnRyeSBjb2RlIGFzIGxpc3RlZCBieSB0aGUgU2VydmljZSBQcm92aWRlciBhbmQgdG8gd2hpY2ggdGhlIEJQIGFzc2lnZW5kIHRoZSBjZXJ0aWZpY2F0ZSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5lc3JfY2VydGlmaWNhdGVzLmVzcl9jZXJ0aWZpY2F0ZV8xLjAuMV9Db3VudHJ5Q29kZXMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY2VydGlmaWNhdGVWZXJzaW9uIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVmVyc2lvbiBvZiB0aGUgY2VydGlmaWNhdGUgYXMgaW4gdGhlIGNlcnRpZmljYXRpb24gZG9jdW1lbnQiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfMS4wLjFfU3RyaW5nVmFsdWUiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY2VydGlmaWNhdGVSZWdpc3RyYXRpb25OdW1iZXIiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJSZWdpc3RyYXRpb24gbnVtYmVyIG9mIHRoZSBjZXJ0aWZpY2F0ZSBhcyBpbiB0aGUgY2VydGlmaWNhdGlvbiBkb2N1bWVudCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5lc3JfY2VydGlmaWNhdGVzLmVzcl9jZXJ0aWZpY2F0ZV8xLjAuMV9TdHJpbmdWYWx1ZSINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjZXJ0aWZpY2F0ZUFyZWFPZkFwcGxpY2F0aW9uIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUmVnaXN0cmF0aW9uIG51bWJlciBvZiB0aGUgY2VydGlmaWNhdGUgYXMgaW4gdGhlIGNlcnRpZmljYXRpb24gZG9jdW1lbnQiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfMS4wLjFfU3RyaW5nVmFsdWUiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY2VydGlmaWNhdGVSZW1hcmsiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJSZWdpc3RyYXRpb24gbnVtYmVyIG9mIHRoZSBjZXJ0aWZpY2F0ZSBhcyBpbiB0aGUgY2VydGlmaWNhdGlvbiBkb2N1bWVudCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5lc3JfY2VydGlmaWNhdGVzLmVzcl9jZXJ0aWZpY2F0ZV8xLjAuMV9TdHJpbmdWYWx1ZSINCiAgICAgICAgICB9LA0KICAgICAgICAgICJhZGRpdGlvbmFsQ2VydGlmaWNhdGVSZWdpc3RyYXRpb25OdW1iZXIiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBZGRpdGlvbmFsIGNlcnRpZmljYXRlIHJlZ2lzdHJhdGlvbiBudW1iZXIiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfMS4wLjFfU3RyaW5nVmFsdWUiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY2VydGlmaWNhdGlvbkFnZW5jeVJlZ2lzdHJhdGlvbk51bWJlciIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNlcnRpZmljYXRpb24gYWdlbmN5IHJlZ2lzdHJhdGlvbiBudW1iZXIiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfMS4wLjFfU3RyaW5nVmFsdWUiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY2VydGlmaWNhdGlvbkFnZW5jeU5hbWUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDZXJ0aWZpY2F0aW9uIGFnZW5jeSBuYW1lIGFzIGluIHRoZSBjZXJ0aWZpY2F0aW9uIGRvY3VtZW50IiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LmVzcl9jZXJ0aWZpY2F0ZXMuZXNyX2NlcnRpZmljYXRlXzEuMC4xX1N0cmluZ1ZhbHVlIg0KICAgICAgICAgIH0sDQogICAgICAgICAgImNlcnRpZmljYXRlVmFsaWRGcm9tIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ2VydGlmaWNhdGUgdmFsaWQgZnJvbSBhcyBpbiB0aGUgY2VydGlmaWNhdGlvbiBkb2N1bWVudCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5lc3JfY2VydGlmaWNhdGVzLmVzcl9jZXJ0aWZpY2F0ZV8xLjAuMV9EYXRlVmFsdWUiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY2VydGlmaWNhdGVWYWxpZFVudGlsIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ2VydGlmaWNhdGUgdmFsaWQgdW50aWwgYXMgaW4gdGhlIGNlcnRpZmljYXRpb24gZG9jdW1lbnQiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfMS4wLjFfRGF0ZVZhbHVlIg0KICAgICAgICAgIH0sDQogICAgICAgICAgImNlcnRpZmljYXRlTmFtZSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNlcnRpZmljYXRlIG5hbWUgYXMgaW4gdGhlIGNlcnRpZmljYXRpb24gZG9jdW1lbnQiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfMS4wLjFfQ2VydGlmaWNhdGVOYW1lRW51bWVyYXRpb24iDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicmVxdWlyZWQiIDogWyAiY2F0ZW5heEJwbiIsICJidXNpbmVzc1BhcnRuZXJOYW1lIiwgImJ1c2luZXNzUGFydG5lclN0cmVldCIsICJidXNpbmVzc1BhcnRuZXJaaXAiLCAiYnVzaW5lc3NQYXJ0bmVyQ2l0eSIsICJidXNpbmVzc1BhcnRuZXJSZWdpb24iLCAiYnVzaW5lc3NQYXJ0bmVyQ291bnRyeUNvZGUiLCAiY2VydGlmaWNhdGVWZXJzaW9uIiwgImNlcnRpZmljYXRlUmVnaXN0cmF0aW9uTnVtYmVyIiwgImNlcnRpZmljYXRlQXJlYU9mQXBwbGljYXRpb24iLCAiY2VydGlmaWNhdGVSZW1hcmsiLCAiYWRkaXRpb25hbENlcnRpZmljYXRlUmVnaXN0cmF0aW9uTnVtYmVyIiwgImNlcnRpZmljYXRpb25BZ2VuY3lSZWdpc3RyYXRpb25OdW1iZXIiLCAiY2VydGlmaWNhdGlvbkFnZW5jeU5hbWUiLCAiY2VydGlmaWNhdGVWYWxpZEZyb20iLCAiY2VydGlmaWNhdGVWYWxpZFVudGlsIiwgImNlcnRpZmljYXRlTmFtZSIgXQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgInByb3BlcnRpZXMiIDogew0KICAgICJjZXJ0aWZpY2F0ZVN0YXRlIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIEVudmlyb25tZW50YWwgYW5kIFNvY2lhbCBSZXNwb25zaWJpbGl0eSAoRVNSKSBjZXJ0aWZpY2F0ZSBzdGF0ZSBpcyByZXBvcnRlZCBhcyB2YWxpZCBpZiB0aGUgcXVlcnkgZGF5IGlzIHdpdGhpbiB0aGUgdmFsaWRpdHkgcGVyaW9kIG9mIHRoZSBjZXJ0aWZpY2F0ZSIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5lc3JfY2VydGlmaWNhdGVzLmVzcl9jZXJ0aWZpY2F0ZV8xLjAuMV9DZXJ0aWZpY2F0ZVN0YXRlIg0KICAgIH0sDQogICAgImNlcnRpZmljYXRlRGF0YSIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIkFuIEVudmlyb25tZW50YWwgYW5kIFNvY2lhbCBSZXNwb25zaWJpbGl0eSAoRVNSKSBjZXJ0aWZpY2F0ZSBpcyBkZXNjcmliZWQgYnkgYSB1bmlxdWUgc2V0IG9mIGRhdGEgZm9yIGEgZ2l2ZW4gY2VydGlmaWNhdGUgdHlwZSIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5lc3JfY2VydGlmaWNhdGVzLmVzcl9jZXJ0aWZpY2F0ZV8xLjAuMV9DZXJ0aWZpY2F0ZURhdGFDaGFyYWN0ZXJpc3RpYyINCiAgICB9DQogIH0sDQogICJyZXF1aXJlZCIgOiBbICJjZXJ0aWZpY2F0ZVN0YXRlIiwgImNlcnRpZmljYXRlRGF0YSIgXQ0KfQ== + # urn:samm:io.catenax.esr_certificates.esr_certificate_state_statistic:1.0.1#EsrCertificateStateStatistic + dXJuOnNhbW06aW8uY2F0ZW5heC5lc3JfY2VydGlmaWNhdGVzLmVzcl9jZXJ0aWZpY2F0ZV9zdGF0ZV9zdGF0aXN0aWM6MS4wLjEjRXNyQ2VydGlmaWNhdGVTdGF0ZVN0YXRpc3RpYw: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIlN0YXRlIHN0YXRpc3RpYyBmb3IgYW4gRW52aXJvbm1lbnRhbCBhbmQgU29jaWFsIFJlc3BvbnNpYmlsaXR5IChFU1IpIGNlcnRpZmljYXRlIiwNCiAgInR5cGUiIDogIm9iamVjdCIsDQogICJjb21wb25lbnRzIiA6IHsNCiAgICAic2NoZW1hcyIgOiB7DQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5lc3JfY2VydGlmaWNhdGVzLmVzcl9jZXJ0aWZpY2F0ZV9zdGF0ZV9zdGF0aXN0aWNfMS4wLjFfQ2VydGZpY2F0ZU5hbWUiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJTdHJpbmcgd2l0aG91dCBsYW5ndWFnZSB0YWdzIiwNCiAgICAgICAgImVudW0iIDogWyAiSVNPIDE0MDAxIiBdDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfc3RhdGVfc3RhdGlzdGljXzEuMC4xX0NlcnRpZmljYXRlc1dpdGhTdGF0ZVZhbHVlIiA6IHsNCiAgICAgICAgInR5cGUiIDogIm51bWJlciIsDQogICAgICAgICJtaW5pbXVtIiA6IDANCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5lc3JfY2VydGlmaWNhdGVzLmVzcl9jZXJ0aWZpY2F0ZV9zdGF0ZV9zdGF0aXN0aWNfMS4wLjFfQ2VydGlmaWNhdGVTdGF0ZVN0YXRpc3RpYyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImNlcnRpZmljYXRlc1dpdGhTdGF0ZVZhbGlkIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiTnVtYmVyIG9mIGNlcnRpZmljYXRlcyB3aXRoIHN0YXRlIHZhbGlkIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LmVzcl9jZXJ0aWZpY2F0ZXMuZXNyX2NlcnRpZmljYXRlX3N0YXRlX3N0YXRpc3RpY18xLjAuMV9DZXJ0aWZpY2F0ZXNXaXRoU3RhdGVWYWx1ZSINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjZXJ0aWZpY2F0ZXNXaXRoU3RhdGVJbnZhbGlkIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiTnVtYmVyIG9mIGNlcnRpZmljYXRlcyB3aXRoIHN0YXRlIGludmFsaWQiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfc3RhdGVfc3RhdGlzdGljXzEuMC4xX0NlcnRpZmljYXRlc1dpdGhTdGF0ZVZhbHVlIg0KICAgICAgICAgIH0sDQogICAgICAgICAgImNlcnRpZmljYXRlc1dpdGhTdGF0ZVVua25vd24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJOdW1iZXIgb2YgY2VydGlmaWNhdGVzIHdpdGggc3RhdGUgdW5rbm93biIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5lc3JfY2VydGlmaWNhdGVzLmVzcl9jZXJ0aWZpY2F0ZV9zdGF0ZV9zdGF0aXN0aWNfMS4wLjFfQ2VydGlmaWNhdGVzV2l0aFN0YXRlVmFsdWUiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY2VydGlmaWNhdGVzV2l0aFN0YXRlRXhjZXB0aW9uYWwiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJOdW1iZXIgb2YgY2VydGlmaWNhdGVzIHdpdGggc3RhdGUgZXhjZXB0aW9uYWwiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfc3RhdGVfc3RhdGlzdGljXzEuMC4xX0NlcnRpZmljYXRlc1dpdGhTdGF0ZVZhbHVlIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgImNlcnRpZmljYXRlc1dpdGhTdGF0ZVZhbGlkIiwgImNlcnRpZmljYXRlc1dpdGhTdGF0ZUludmFsaWQiLCAiY2VydGlmaWNhdGVzV2l0aFN0YXRlVW5rbm93biIsICJjZXJ0aWZpY2F0ZXNXaXRoU3RhdGVFeGNlcHRpb25hbCIgXQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgInByb3BlcnRpZXMiIDogew0KICAgICJjZXJ0aWZpY2F0ZU5hbWUiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJOYW1lIG9mIHRoZSBFbnZpcm9ubWVudGFsIGFuZCBTb2NpYWwgUmVzcG9uc2liaWxpdHkgKEVTUikgY2VydGlmaWNhdGUiLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguZXNyX2NlcnRpZmljYXRlcy5lc3JfY2VydGlmaWNhdGVfc3RhdGVfc3RhdGlzdGljXzEuMC4xX0NlcnRmaWNhdGVOYW1lIg0KICAgIH0sDQogICAgImNlcnRpZmljYXRlU3RhdGVTdGF0aXN0aWMiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJFbnZpcm9ubWVudGFsIGFuZCBTb2NpYWwgUmVzcG9uc2liaWxpdHkgKEVTUikgY2VydGlmaWNhdGUgc3RhdGUgc3RhdGlzdGljIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LmVzcl9jZXJ0aWZpY2F0ZXMuZXNyX2NlcnRpZmljYXRlX3N0YXRlX3N0YXRpc3RpY18xLjAuMV9DZXJ0aWZpY2F0ZVN0YXRlU3RhdGlzdGljIg0KICAgIH0NCiAgfSwNCiAgInJlcXVpcmVkIiA6IFsgImNlcnRpZmljYXRlTmFtZSIsICJjZXJ0aWZpY2F0ZVN0YXRlU3RhdGlzdGljIiBdDQp9 + # urn:samm:io.catenax.fleet.diagnostic_data:2.0.0#DiagnosticData + dXJuOnNhbW06aW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGE6Mi4wLjAjRGlhZ25vc3RpY0RhdGE: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIkEgQ2F0ZW5hLVggc2VtYW50aWMgZGF0YSBtb2RlbCBmb3IgYSBsaXN0IG9mIHZlaGljbGUgZGlhZ25vc3RpYyBzZXNzaW9ucy4iLA0KICAidHlwZSIgOiAib2JqZWN0IiwNCiAgImNvbXBvbmVudHMiIDogew0KICAgICJzY2hlbWFzIiA6IHsNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9SZWNvcmRTdGF0dXNFbnVtZXJhdGlvbiIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkRlZmluaW5nIHRoZSBlbnVtZXJhdGlvbiBmb3IgdGhlIHJlY29yZCBzdGF0dXMiLA0KICAgICAgICAiZW51bSIgOiBbICJuZXciLCAidXBkYXRlIiwgImRlbGV0ZSIsICJzYW1lIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguZmxlZXQuZGlhZ25vc3RpY19kYXRhXzIuMC4wX1VuaXF1ZUlEIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhpcyBDaGFyYWN0ZXJpc3RpYyBkZXNjcmliZXMgYSBwcm9wZXJ0eSB0aGF0IGlzIHRydWx5IHVucXVlIGVpdGhlciBpbnNpZGUgdGhlIENvbXBhbnkgdGhhdCBpcyBwcm92aWRpbmcgdGhlIGRhdGEgb3IgZXZlbiBpbiBDYXRlbmEtWCBkYXRhc3BhY2UuIE9ubHkgb25lIHByb3BlcnR5IGluIGEgc2VtYW50aWMgZW50aXR5IHNob3VsZCBiZSBhIHVuaXF1ZUlELiBVbmlxdWUgaWRzIGNhbiBiZSB1c2VkIHRvIGxpbmsgYSBkYXRhIHNldCB3aXRoIG90aGVyIHNlbWFudGljIG1vZGVscy4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnV1aWRfMS4wLjBfVXVpZFY0VHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgcHJvdmlkZWQgcmVndWxhciBleHByZXNzaW9uIGVuc3VyZXMgdGhhdCB0aGUgVVVJRCBpcyBjb21wb3NlZCBvZiBmaXZlIGdyb3VwcyBvZiBjaGFyYWN0ZXJzIHNlcGFyYXRlZCBieSBoeXBoZW5zLCBpbiB0aGUgZm9ybSA4LTQtNC00LTEyIGZvciBhIHRvdGFsIG9mIDM2IGNoYXJhY3RlcnMgKDMyIGhleGFkZWNpbWFsIGNoYXJhY3RlcnMgYW5kIDQgaHlwaGVucyksIG9wdGlvbmFsbHkgcHJlZml4ZWQgYnkgXCJ1cm46dXVpZDpcIiB0byBtYWtlIGl0IGFuIElSSS4iLA0KICAgICAgICAicGF0dGVybiIgOiAiKF5bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kKXwoXnVybjp1dWlkOlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQpIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9Db3VudHJ5Q29kZVRyYWl0IiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUmVndWxhciBFeHByZXNzaW9uIHRoYXQgZW5zdXJlcyBhIHRocmVlLWxldHRlciBjb2RlICIsDQogICAgICAgICJwYXR0ZXJuIiA6ICJeW0EtWl1bQS1aXVtBLVpdJCINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RleHQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEZXNjcmliZXMgYSBQcm9wZXJ0eSB3aGljaCBjb250YWlucyBwbGFpbiB0ZXh0LiBUaGlzIGlzIGludGVuZGVkIGV4Y2x1c2l2ZWx5IGZvciBodW1hbiByZWFkYWJsZSBzdHJpbmdzLCBub3QgZm9yIGlkZW50aWZpZXJzLCBtZWFzdXJlbWVudCB2YWx1ZXMsIGV0Yy4iDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguZmxlZXQuZGlhZ25vc3RpY19kYXRhXzIuMC4wX01pbGVhZ2VDb3VudGVyIiA6IHsNCiAgICAgICAgInR5cGUiIDogIm51bWJlciIsDQogICAgICAgICJtaW5pbXVtIiA6IDAsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIG1pbGVhZ2UgY291bnRlciBvZiB0aGUgY2FyLiINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RpbWVzdGFtcCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAicGF0dGVybiIgOiAiLT8oWzEtOV1bMC05XXszLH18MFswLTldezN9KS0oMFsxLTldfDFbMC0yXSktKDBbMS05XXxbMTJdWzAtOV18M1swMV0pVCgoWzAxXVswLTldfDJbMC0zXSk6WzAtNV1bMC05XTpbMC01XVswLTldKFxcLlswLTldKyk/fCgyNDowMDowMChcXC4wKyk/KSkoWnwoXFwrfC0pKCgwWzAtOV18MVswLTNdKTpbMC01XVswLTldfDE0OjAwKSk/IiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEZXNjcmliZXMgYSBQcm9wZXJ0eSB3aGljaCBjb250YWlucyB0aGUgZGF0ZSBhbmQgdGltZSB3aXRoIGFuIG9wdGlvbmFsIHRpbWV6b25lLiINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfTGF0aXR1ZGVUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJudW1iZXIiLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRyYWl0IHRvIGRlZmluZSB0aGUgbGF0aXR1ZGUuIiwNCiAgICAgICAgIm1heGltdW0iIDogOTAuMCwNCiAgICAgICAgImV4Y2x1c2l2ZU1heGltdW0iIDogZmFsc2UsDQogICAgICAgICJtaW5pbXVtIiA6IC05MC4wLA0KICAgICAgICAiZXhjbHVzaXZlTWluaW11bSIgOiBmYWxzZQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9Mb25naXR1ZGVUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJudW1iZXIiLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRyYWl0IHRvIGRlZmluZSB0aGUgbG9uZ2l0dWRlLiIsDQogICAgICAgICJtYXhpbXVtIiA6IDE4MC4wLA0KICAgICAgICAiZXhjbHVzaXZlTWF4aW11bSIgOiBmYWxzZSwNCiAgICAgICAgIm1pbmltdW0iIDogLTE4MC4wLA0KICAgICAgICAiZXhjbHVzaXZlTWluaW11bSIgOiBmYWxzZQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9Xb3Jrc2hvcENoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJHcm91cHMgYWxsIHdvcmtzaG9wIHByb3BlcnRpZXMuIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAid29ya1Nob3BJZCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIk9FTS1zcGVjaWZpYyBpZGVudGlmaWVyIGZvciBhIHdvcmtzaG9wLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfVW5pcXVlSUQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAibGF0aXR1ZGUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJMYXRpdHVkZSBwcm9wZXJ0eSBmb3IgR1BTIGNvb3JkaW5hdGVzLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfTGF0aXR1ZGVUcmFpdCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJsb25naXR1ZGUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJMb25naXR1ZGUgcHJvcGVydHkgZm9yIEdQUyBjb29yZGluYXRlcy4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguZmxlZXQuZGlhZ25vc3RpY19kYXRhXzIuMC4wX0xvbmdpdHVkZVRyYWl0Ig0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgIndvcmtTaG9wSWQiIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfSGV4VmFsdWVUcmFpdCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoaXMgcmVndWxhciBleHByZXNzaW9uIGVuZm9yY2VzIGEgaGV4IHN0cmluZy4gSXQgZW5zdXJlcyAwLTksIGEtZiwgQS1GIHdpdGggYW4gb3B0aW9uYWwgcHJlZml4IDB4LlxuVmFsaWQgZXhhbXBsZXM6XG4tIDB4MDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRlxuLSAwMTIzNDU2Nzg5YWJjZGVmQUJDREVGXG4iLA0KICAgICAgICAicGF0dGVybiIgOiAiXigweCk/WzAtOWEtZkEtRl0rJCINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX0Jvb2xlYW4iIDogew0KICAgICAgICAidHlwZSIgOiAiYm9vbGVhbiIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUmVwcmVzZW50cyBhIGJvb2xlYW4gdmFsdWUgKGkuZS4gYSBcImZsYWdcIikuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9Mb25nIiA6IHsNCiAgICAgICAgInR5cGUiIDogIm51bWJlciIsDQogICAgICAgICJtYXhpbXVtIiA6IDkyMjMzNzIwMzY4NTQ3NzU4MDcsDQogICAgICAgICJtaW5pbXVtIiA6IC05MjIzMzcyMDM2ODU0Nzc1ODA4LA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNoYXJhY3RlcmlzdGljIGZvciBhIGxvbmcgdmFsdWUuIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9UeXBlRW51bXVtZXJhdGlvbiIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkVudW1lcmF0aW9uIGZvciBhIERUQy4iLA0KICAgICAgICAiZW51bSIgOiBbICJFcnJvciIsICJJbmZvIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguZmxlZXQuZGlhZ25vc3RpY19kYXRhXzIuMC4wX0RvdWJsZSIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJudW1iZXIiLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkEgZG91YmxlIHZhbHVlIg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9FbnZpcm9ubWVudENvbmRpdGlvbiIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiT25lIGVudmlyb25tZW50IGNvbmRpdGlvbiBsaWtlIHRlbXBlcmF0dXJlLCBycG0sLi4uXG5JZiB0aGUgZW52aXJvbm1lbnQgY29uZGl0aW9uIHdhcyBtZWFzdXJlZCBvbiB2ZWhpY2xlIGxldmVsIC0+IGVjdVNlcmlhbFBhcnROdW1iZXIgaXMgZW1wdHkiLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJjb25kaXRpb25JZCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIk9FTS1zcGVjaWZpYzogUHJpbWFyeSBrZXkgZm9yIHRoaXMgY29uZGl0aW9uIGNvbnNpc3RzIG9mIHVuaXF1ZSBpZGVudGlmaWVyIG9mIGVudi4gY29uZGl0aW9uIGFuZCBEVEMiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguZmxlZXQuZGlhZ25vc3RpY19kYXRhXzIuMC4wX1VuaXF1ZUlEIg0KICAgICAgICAgIH0sDQogICAgICAgICAgImNvbmRpdGlvbkNyZWF0aW9uVGltZVN0YW1wIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGF0ZSBhbmQgdGltZSB3aGVuIHRoaXMgY29uZGl0aW9uL2luZm9ybWF0aW9uIHdhcyBjcmVhdGVkLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RpbWVzdGFtcCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjb25kaXRpb25EZXNjcmlwdGlvbiIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgZW52aXJvbm1lbnQgY29uZGl0aW9uL2luZm9ybWF0aW9uIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGV4dCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjb25kaXRpb25WYWx1ZSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBudW1lcmljIHZhbHVlIG9mIHRoZSBjb25kaXRpb24gYXMgZG91YmxlLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfRG91YmxlIg0KICAgICAgICAgIH0sDQogICAgICAgICAgIm1lYXN1cmVtZW50VW5pdCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSB1bml0IG9mIG1lYXN1cmVtZW50IGZvciB0aGUgZW52aXJvbm1lbnQgY29uZGl0aW9uIHZhbHVlLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RleHQiDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicmVxdWlyZWQiIDogWyAiY29uZGl0aW9uSWQiIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfRW52aXJvbm1lbnRDb25kaXRpb25zIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBIGxpc3Qgb2YgZW52aXJvbm1lbnQgY29uZGl0aW9ucywgbGlrZSBzdXJyb3VuZGluZyB0ZW1wZXJhdHVyZSwgcnBtLCAuLi4iLA0KICAgICAgICAidHlwZSIgOiAiYXJyYXkiLA0KICAgICAgICAiaXRlbXMiIDogew0KICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9FbnZpcm9ubWVudENvbmRpdGlvbiINCiAgICAgICAgfQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9EaWFnbm9zdGljVHJvdWJsZUNvZGUiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogImRpYWdub3N0aWMgdHJvdWJsZSBjb2RlcyBvciBzaG9ydCBEVENzIGFyZSB1c2VkIGluc2lkZSBFQ1VzIHRvIG1vbml0b3IgZmFpbHVyZXMuIFRoZXkgd2VyZSBpbnRyb2R1Y2VkIGZvciBtZWFzdXJpbmcgdmVoaWNsZSBlbWlzc2lvbnMuIE1ham9yIERUQ3MgZm9yIGVtaXNzaW9ucyBhcmUgc3RhbmRhcmRpemVkIGJ5IElTTyBzdGFuZGFyZCBJU08gMTUwMzEtNjoyMDE1IC0gc28gY2FsbGVkIE9CRDIgc3RhbmRhcmQuIE92ZXIgdGltZSBEVENzIHdlcmUgYWxzbyBpbnRyb2R1Y2VkIGluIG90aGVyIEVDVXMgYWxzbyBiZXNpZGVzIGVuZ2luZSBhbmQgZW1pc3Npb24gY29udHJvbC4gTWFueSBEVENzIGFyZSB2ZWhpY2xlIG1hbnVmYWN0dXJlciBzcGVjaWZpYy5cbiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgImR0Y0hleFZhbHVlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiSGV4IHZhbHVlIG9mIHRoaXMgRFRDIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9IZXhWYWx1ZVRyYWl0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImZhdWx0UGF0aCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIk9FTS1zcGVjaWZpYzogRmF1bHQgcGF0aCBmb3IgdGhpcyBEVEMuIEFsbG93cyBmdXJ0aGVyIGFuYWx5c2lzIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGV4dCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJmYXVsdFBhdGhEZXNjcmlwdGlvbiIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIk9FTS1zcGVjaWZpYyBkZXNjcmlwdGlvbiBvZiBEVEMgZmF1bHQgcGF0aCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RleHQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiZnJlZXplRnJhbWUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJmcmVlemUgZnJhbWUgZnJvbSBlY3UuIFRoZSBmcmVlemUgZnJhbWUgcmVjb3JkcyBtYW55IHBhcmFtZXRlcnMgb2YgdGhlIERUQyBhbmQgc3Vycm91bmRpbmcgcGFyYW1ldGVycyBsaWtlIG91dHNpZGUgdGVtcGVyYXR1cmUgd2hlbiB0aGUgRFRDIHdhcyBzZXQuIEl0IGlzIGEgdmVyeSBsb25nIEhFWCBzdHJpbmcgd2l0aCBtYW55IE9FTS1zcGVjaWZpYyBhbmQgRUNVLXNwZWNpZmljIGNvbnRlbnQgaW4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguZmxlZXQuZGlhZ25vc3RpY19kYXRhXzIuMC4wX0hleFZhbHVlVHJhaXQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiZnVsbERlc2NyaXB0aW9uIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiZGVzY3JpcHRpb24gb2YgRFRDIGFuZCBmYWlsdXJlIGJ5dGUuIEJvdGggZGVzY3JpcHRpb24gc3RyaW5ncyBhcmUgY29uY2F0ZW5hdGVkIHVzaW5nIGEgXCItXCIgYXMgc2VwYXJhdG9yIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGV4dCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJmdWxsTmFtZSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNvbWJpbmVkIHN0cmluZyBvZiBEVEMgbmFtZSAgcGx1cyB0aGUgc28gY2FsbGVkIERUQyBzdWIgdHlwZSBvciBEVEMgZmFpbHVyZSBieXRlLiBEVEMgbmFtZSBzdGFydHMgd2l0aCBCfEN8UHxVICsgNCBoZXggY2hhcnMgKyBzZXBhcmF0b3IgXCItXCIgKyBEVEMgZmFpbHVyZSBieXRlOiAyIGhleCBjaGFycy4gQXMgdGhpcyBvbmx5IGFwcGxpZXMgZm9yIHN0YW5kYXJkaXplZCBEVENzIHRoZXJlIGlzIG5vIGVuZm9yY2VtZW50LiAiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImlzTWlsT24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJkZXNjcmliZXMgd2hldGhlciB0aGlzIERUQyBzZXQgdGhlIE1JTCAobWFsZnVuY3Rpb24gaW5kaWNhdG9yIGxpZ2h0KSAgaW4gdGhlIGRhc2hib2FyZCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX0Jvb2xlYW4iDQogICAgICAgICAgfSwNCiAgICAgICAgICAib2NjdXJlbmNlQ291bnRlclRvdGFsIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ291bnRlciBob3cgb2Z0ZW4gdGhpcyBEVEMgd2FzIHNldCBpbiB0b3RhbCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfTG9uZyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJvY2N1cmVuY2VNaWxlYWdlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAibWlsZWFnZSBpbiBrbSB3aGVuIHRoZSBEVEMgb2NjdXJyZWQgdGhlIGZpcnN0IHRpbWUgIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9NaWxlYWdlQ291bnRlciINCiAgICAgICAgICB9LA0KICAgICAgICAgICJvY2N1cmVuY2VUaW1lU3RhbXAiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJkYXRlIGFuZCB0aW1lIHdoZW4gdGhlIERUQyBvY2N1cmVkIHRoZSBmaXJzdCB0aW1lL3dhcyByZWNvcmRlZCB0aGUgZmlyc3QgdGltZSBpbiB0aGUgRUNVIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGltZXN0YW1wIg0KICAgICAgICAgIH0sDQogICAgICAgICAgInN0YXRlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiT0VNLXNwZWNpZmljIHN0YXRlIG9mIERUQzogMDsxIChwZXJtYW5lbnQvdGVtcG9yYXJ5L2ludGVybWVkaWF0ZSksIGNvdWxkIGFsc28gYmUgYSBzdHJpbmcgd2l0aCBwZXJtYW5lbnQsIHRlbXBvcmFyeSwgaW50ZXJtZWRpYXRlLCAuLi4uIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGV4dCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJ0eXBlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiSW5kaWNhdG9yIHdoZXRoZXIgdGhpcyBEVEMgd2FzIHN0b3JlZCBhcyBFcnJvciBvciBJbmZvIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9UeXBlRW51bXVtZXJhdGlvbiINCiAgICAgICAgICB9LA0KICAgICAgICAgICJlbnZDb25kaXRpb25MaXN0IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBsaXN0IG9mIGVudmlyb25tZW50IGNvbmRpdGlvbnM6IEUuZy4gb3V0c2lkZSB0ZW1wZXJhdHVyZSBtZWFzdXJlZCBieSB0aGUgdmVoaWNsZSwgYSBzcGVjaWZpYyB2YWx1ZSBtZWFzdXJlZCBieSBvbiBFQ1UsIC4uLi4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguZmxlZXQuZGlhZ25vc3RpY19kYXRhXzIuMC4wX0Vudmlyb25tZW50Q29uZGl0aW9ucyINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJkdGNIZXhWYWx1ZSIsICJzdGF0ZSIsICJ0eXBlIiwgImVudkNvbmRpdGlvbkxpc3QiIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfRFRDTGlzdCIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBsaXN0IG9mIERUQ3MgdGhhdCBhcmUgcHJlc2VudCBpbiB0aGlzIGRpYWdub3N0aWMgc2Vzc2lvbi4iLA0KICAgICAgICAidHlwZSIgOiAiYXJyYXkiLA0KICAgICAgICAiaXRlbXMiIDogew0KICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9EaWFnbm9zdGljVHJvdWJsZUNvZGUiDQogICAgICAgIH0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfRUNVIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBIHNpbmdsZSBFQ1UgdGhhdCBpcyBwcmVzZW50L2hhcyBhIERUQyBzZXQgaW4gdGhlIGRpYWdub3N0aWMgc2Vzc2lvbiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgIm9lbVNlcmlhbE51bWJlciIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlNlcmlhbCBwYXJ0IG51bWJlciBvZiB0aGUgb3JpZ2luYWwgZXF1aXBtZW50IG1hbnVmYWN0dXJlciAoT0VNKS4gVHlwaWNhbGx5IHRoZSBPRU0gaXMgaW5zdGFsbGluZyB0aGUgcGFydCBpbiB0aGUgY2FyLiBBIHNlcmlhbCBwYXJ0IG51bWJlciBpcyB1bmlxdWUgZm9yIGV2ZXJ5IHNpbmdsZSBwYXJ0LiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfVW5pcXVlSUQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiYXNzZW1ibHlQYXJ0TnVtYmVyVmVyc2lvbiIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIk9FTS1zcGVjaWZpYyBlY3UgYXNzZW1ibHkgdmVyc2lvbiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RleHQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY2F0ZW5hWFBhcnRJZCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBmdWxseSBhbm9ueW1vdXMgYW5kIHVuaXF1ZSBDYXRlbmEtWCBJRCBvZiB0aGlzIHBhcnQuIFRoaXMgaWQgaXMgdW5pcXVlIGluc2lkZSBDYXRlbmEtWCBkYXRhIHNwYWNlLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5zaGFyZWQudXVpZF8xLjAuMF9VdWlkVjRUcmFpdCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjYWxpYnJhdGlvblZlcnNpb24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDYWxpYnJhdGlvbiB2ZXJzaW9uIHRoYXQgd2FzIHB1dCBvbiB0aGlzIGVjdS4gQSBjYWxpYnJhdGlvbiBmaWxlIHdvcmtzIGxpa2UgYSBwYXJhbWV0ZXIgZmlsZSBmb3IgdGhlIGVjdSBzb2Z0d2FyZS4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImh3UGFydE51bWJlciIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogImhhcmR3YXJlIHBhcnQgbnVtYmVyIG9mIEVDVSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RleHQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiaHdWZXJzaW9uIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiaGFyZHdhcmUgdmVyc2lvbiBvZiBFQ1UiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgIm9lbVBhcnROYW1lIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiUGFydCBuYW1lIGFzIGRlZmluZWQgYnkgdGhlIG9yaWdpbmFsIGVxdWlwbWVudCBtYW51ZmFjdHVyZXIgKE9FTSkuIFR5cGljYWxseSB0aGUgT0VNIGlzIGluc3RhbGxpbmcgdGhlIHBhcnQgaW4gdGhlIGNhci4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgIm9lbVBhcnROdW1iZXIiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJQYXJ0IG51bWJlciBvZiB0aGUgb3JpZ2luYWwgZXF1aXBtZW50IG1hbnVmYWN0dXJlciAoT0VNKS4gVHlwaWNhbGx5IHRoZSBPRU0gaXMgaW5zdGFsbGluZyB0aGUgcGFydCBpbiB0aGUgY2FyLiBBIHBhcnQgbnVtYmVyIGlzIE5PVCB1bmlxdWU6IEFsbCBwYXJ0cyBvZiB0aGUgc2FtZSBraW5kIHNoYXJlIHRoZSBzYW1lIHBhcnQgbnVtYmVyLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RleHQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAicmVhZE91dERhdGUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEYXRlIHdoZW4gdGhpcyBFQ1UgaW5mb3JtYXRpb24gd2FzIHJlYWQgb3V0IGZyb20gdGhlIGRpYWdub3N0aWMgc2Vzc2lvbiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RpbWVzdGFtcCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJzd1BhcnROdW1iZXIiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJTVyBwYXJ0IG51bWJlciBvZiB0aGlzIGVjdSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RleHQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAic3dWZXJzaW9uIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBzb2Z0d2FyZSBvbiB0aGlzIGVjdSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RleHQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAidmFyaWFudENvZGluZyIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlZhcmlhbnQgY29kaW5nIHRoYXQgd2FzIHB1dCBvbiB0aGlzIGVjdS4gVmFyaWFudCBjb2RpbmcgdGVsbHMgdGhlIGVjdXMgc29mdHdhcmUgaG93IHRvIGJlaGF2ZS4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImR0Y3MiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJsaXN0IG9mIGRpYWdub3N0aWMgdHJvdWJsZSBjb2RlcyIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfRFRDTGlzdCINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJvZW1TZXJpYWxOdW1iZXIiIF0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfRWN1TGlzdCIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBsaXN0IG9mIGVsZWN0cm9uaWMgY29udHJvbCB1bml0cyBpbiB0aGlzIGRpYWdub3N0aWMgc2Vzc2lvbi4iLA0KICAgICAgICAidHlwZSIgOiAiYXJyYXkiLA0KICAgICAgICAiaXRlbXMiIDogew0KICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9FQ1UiDQogICAgICAgIH0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfUHJvY2VkdXJlUmVzdWx0Q2hhcmFjdGVyaXNpdGMiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyBmb3IgcHJvY2VkdXJlIHJlc3VsdHMuIiwNCiAgICAgICAgImVudW0iIDogWyAib2siLCAibm9rIiwgImZhaWxlZCIsICJudWxsIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXguZmxlZXQuZGlhZ25vc3RpY19kYXRhXzIuMC4wX1Byb2NlZHVyZUNhbGwiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIk9uZSBwcm9jZWR1cmUgY2FsbCBpbiB0aGUgZGlhZ25vc3RpYyBzb2Z0d2FyZS4iLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJwcm9jZWR1cmVJRCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgcHJvY2VkdXJlL3N1Yi1wcm9jZWR1cmUgY2FsbCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfVW5pcXVlSUQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAicHJvY2VkdXJlRGVzY3JpcHRpb24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBbiBvcHRpb25hbCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBwcm9jZWR1cmUiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgInByb2NlZHVyZUVuZCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkVuZCBkYXRlIGFuZCB0aW1lIGZvciB0aGlzIHByb2NlZHVyZSBjYWxsLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RpbWVzdGFtcCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJwcm9jZWR1cmVTdGFydCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlN0YXJ0IGRhdGUgYW5kIHRpbWUgZm9yIHRoaXMgcHJvY2VkdXJlIGNhbGwuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGltZXN0YW1wIg0KICAgICAgICAgIH0sDQogICAgICAgICAgInByb2NlZHVyZVJlc3VsdCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlJlc3VsdCBvZiB0aGUgcHJvY2VkdXJlIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9Qcm9jZWR1cmVSZXN1bHRDaGFyYWN0ZXJpc2l0YyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJlY3VMaXN0IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiTGlzdCBvZiBFQ1VzIHRoYXQgaGFkIGFuIGVudHJ5IGluIGl0cyBpbnRlcm5hbCBmYWlsdXJlIG1lbW9yeSBkdXJpbmcgdGhlIGRpYWdub3N0aWMgc2Vzc2lvbiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfRWN1TGlzdCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJzdWJQcm9jZWR1cmVzIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBsaXN0IG9mIHN1Yi1wcm9jZWR1cmVzIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9TdWJQcm9jZWR1cmVzTGlzdCINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJwcm9jZWR1cmVJRCIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9TdWJQcm9jZWR1cmVzTGlzdCIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBsaXN0IG9mIHN1Yi1wcm9jZWR1cmVzIiwNCiAgICAgICAgInR5cGUiIDogImFycmF5IiwNCiAgICAgICAgIml0ZW1zIiA6IHsNCiAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfUHJvY2VkdXJlQ2FsbCINCiAgICAgICAgfQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9Qcm9jZWR1cmVMaXN0IiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBIGxpc3Qgb2YgcHJvY2VkdXJlIGNhbGxzIGluIHRoZSBkaWFnbm9zdGljIHNvZnR3YXJlLiIsDQogICAgICAgICJ0eXBlIiA6ICJhcnJheSIsDQogICAgICAgICJpdGVtcyIgOiB7DQogICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguZmxlZXQuZGlhZ25vc3RpY19kYXRhXzIuMC4wX1Byb2NlZHVyZUNhbGwiDQogICAgICAgIH0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfRGlhZ25vc3RpY1Nlc3Npb24iIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIk9uZSBkaWFnbm9zdGljIHNlc3Npb24gb2Ygb25lIHZlaGljbGU6IEVpdGhlciB0aGlzIGlzIGEgZGlhZ25vc3RpYyBzZXNzaW9uIGRvbmUgaW4gYSB3b3Jrc2hvcCBvciB2aWEgb3Zlci10aGUtYWlyIGRpYWdub3N0aWMuIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAicmVjb3JkU3RhdHVzIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHJlY29yZCBvcGVyYXRpb24gZW51bWVyYXRpb24gY2FuIGJlIHVzZWQgdG8gcmVhbGl6ZSBkZWx0YSB1cGRhdGUgY29uY2VwdC5cbkRlbHRhIHVwZGF0ZSBjb25jZXB0IG1lYW5zOlxuLSBZb3UgdHJhbnNmZXIgYW4gaW5pdGlhbCBsb2FkIG9mIGRhdGFcbi0gQWZ0ZXIgdGhlIGZpcnN0IHdlZWsgb25seSB0aGUgZGVsdGEgdG8gdGhlIGluaXRpYWwgbG9hZCBpcyB0cmFuc2ZlcnJlZFxuXG5cblRoZSByZWNvcmQgc3RhdHVzIGRlc2NyaWJlcyB3aGV0aGVyIHRoaXMgcmVjb3JkIGlzOlxuLSBuZXc9PlRoaXMgcmVjb3JkIGlzIHRyYW5zZmVycmVkIHRoZSBmaXJzdCB0aW1lXG4tIHVwZGF0ZT0+IFNvbWUgcHJvcGVydGllcyBvZiB0aGlzIHJlY29yZCBoYXZlIGNoYW5nZWQgY29tcGFyZWQgdG8gYSBwcmV2aW91cyB0cmFuc2ZlclxuLSBkZWxldGU9PiBUaGlzIHJlY29yZCB3YXMgdHJhbnNmZXJyZWQgaW4gdGhlIGluaXRpYWwgbG9hZCBvciBpbiBhIHByZXZpb3VzIGRlbHRhIHVwZGF0ZSwgYnV0IGlzIG5vdCB1c2VkIGFueSBtb3JlIGFuZCB0aGVyZWZvcmUgaXQgc2hvdWxkIGJlIGRlbGV0ZWQgb24gZGF0YSBjb25zdW1lciBzaWRlXG4tIHNhbWU9PiBUaGlzIHJlY29yZCB3YXMgdHJhbnNmZXJyZWQgaW4gdGhlIGluaXRpYWwgbG9hZCBvciBpbiBhIHByZXZpb3VzIGRlbHRhIHVwZGF0ZSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfUmVjb3JkU3RhdHVzRW51bWVyYXRpb24iDQogICAgICAgICAgfSwNCiAgICAgICAgICAic2Vzc2lvbklkIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBvZW0tc3BlY2lmaWMgc2Vzc2lvbiBpZGVudGlmaWVyIHRoYXQgaXMgdW5pcXVlIGluIHRoaXMgY29tcGFueS4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguZmxlZXQuZGlhZ25vc3RpY19kYXRhXzIuMC4wX1VuaXF1ZUlEIg0KICAgICAgICAgIH0sDQogICAgICAgICAgImFub255bWl6ZWRWSU4iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJPRU0tc3BlY2lmaWMgaGFzaGVkIFZJTi4gVW5pcXVlIHdpdGhpbiBPRU0uIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9VbmlxdWVJRCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjYXRlbmFYUXVhbGl0eVRhc2tJZCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBmdWxseSBhbm9ueW1vdXMgYW5kIHVuaXF1ZSBDYXRlbmEtWCBJRCBvZiB0aGlzIHF1YWxpdHkgdGFzay4gVGhpcyBpZCBpcyB1bmlxdWUgaW5zaWRlIENhdGVuYS1YIGRhdGEgc3BhY2UuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LnNoYXJlZC51dWlkXzEuMC4wX1V1aWRWNFRyYWl0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImNhdGVuYVhWZWhpY2xlSWQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdmVoaWNsZSBpbiB0aGUgQ2F0ZW5hLVggZGF0YSBzcGFjZS4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX2lvLmNhdGVuYXguc2hhcmVkLnV1aWRfMS4wLjBfVXVpZFY0VHJhaXQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAiY291bnRyeUNvZGUiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDb3VudHJ5IGNvZGUgaW4gIElTTyAzMTY2LTEgYWxwaGEtMyBjb2RlcyB3aGVyZSB0aGlzIHNlc3Npb24gdG9vayBwbGFjZSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfQ291bnRyeUNvZGVUcmFpdCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJkaWFnbm9zdGljU29mdHdhcmVOYW1lIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIG5hbWUgb2YgdGhlIGRpYWdub3N0aWMgc29mdHdhcmUgdGhhdCB3YXMgdXNlZC4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImRpYWdub3N0aWNTb2Z0d2FyZVZlcnNpb24iIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgdmVyc2lvbiBvZiB0aGUgdXNlZCBkaWFnbm9zdGljIHNvZnR3YXJlIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGV4dCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJtaWxlYWdlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiTWlsZWFnZSBjb3VudGVyIG9mIHRoZSBjYXIuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9NaWxlYWdlQ291bnRlciINCiAgICAgICAgICB9LA0KICAgICAgICAgICJzZXNzaW9uRW5kIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGVzY3JpYmVzIHRoZSBlbmQgcG9pbnQgZm9yIHRoaXMgZGlhZ25vc3RpYyBzZXNzaW9uLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RpbWVzdGFtcCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJzZXNzaW9uU3RhcnQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEZXNjcmliZXMgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciB0aGlzIGRpYWdub3N0aWMgc2Vzc2lvbi4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UaW1lc3RhbXAiDQogICAgICAgICAgfSwNCiAgICAgICAgICAidmVoaWNsZVNvZnR3YXJlQ2F0ZWdvcnkiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJTb2Z0d2FyZSBjYXRlZ29yeSBvZiB0aGlzIGNhciBkdXJpbmcgdGhlIHNlc3Npb24gLSBvbmx5IGF2YWlsYWJsZSBmb3IgT0VNcyB0aGF0IGhhdmUgYSBzb2Z0d2FyZSBjYXRlZ29yeSBvbiB2ZWhpY2xlIGxldmVsLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1fb3JnLmVjbGlwc2UuZXNtZi5zYW1tX2NoYXJhY3RlcmlzdGljXzIuMS4wX1RleHQiDQogICAgICAgICAgfSwNCiAgICAgICAgICAidmVoaWNsZVNvZnR3YXJlVmVyc2lvbiIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlNvZnR3YXJlIHZlcnNpb24gb2YgdGhpcyBjYXIgZHVyaW5nIHRoZSBzZXNzaW9uIC0gb25seSBhdmFpbGFibGUgZm9yIE9FTXMgdGhhdCBoYXZlIGEgc29mdHdhcmUgY2F0ZWdvcnkgb24gdmVoaWNsZSBsZXZlbC4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgIndvcmtzaG9wIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiR3JvdXBzIHdvcmtzaG9wLXJlbGF0ZWQgcHJvcGVydGllcyIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfV29ya3Nob3BDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJlY3VMaXN0IiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiTGlzdCBvZiBFQ1VzIHRoYXQgaGFkIGFuIGVudHJ5IGluIGl0cyBpbnRlcm5hbCBmYWlsdXJlIG1lbW9yeSBkdXJpbmcgdGhlIGRpYWdub3N0aWMgc2Vzc2lvbiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfRWN1TGlzdCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJwcm9jZWR1cmVzIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiTGlzdCBvZiBwcm9jZWR1cmVzIC8gc3ViLXByb2NlZHVyZXMuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9Qcm9jZWR1cmVMaXN0Ig0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgInNlc3Npb25JZCIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9TZXNzaW9uTGlzdCIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQSBsaXN0IG9mIGRpYWdub3N0aWMgc2Vzc2lvbnMgY29taW5nIGZyb20gbXVsdGlwbGUgdmVoaWNsZXMuIiwNCiAgICAgICAgInR5cGUiIDogImFycmF5IiwNCiAgICAgICAgIml0ZW1zIiA6IHsNCiAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfRGlhZ25vc3RpY1Nlc3Npb24iDQogICAgICAgIH0NCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfTWV0YUNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyBmb3IgdGhlIG1ldGEgaW5mb3JtYXRpb24uIiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAic2VsZWN0aW9uQ3JpdGVyaWEiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEZXNjcmliZXMgdGhlIHNlbGVjdGlvbiBjcml0ZXJpYSBhIENhdGVuYS1YIGRhdGEgcHJvdmlkZXIgaGFzIGFwcGxpZWQgdG8gY3JlYXRlIHRoaXMgZGF0YSBzZXQuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGV4dCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJzZWxlY3Rpb25TdGFydCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkRlc2NyaWJlcyB0aGUgc3RhcnRpbmcgcG9pbnQgZm9yIHByb3ZpZGluZyByZWNvcmRzIGluIHRoaXMgZGF0YSBzZXQuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9vcmcuZWNsaXBzZS5lc21mLnNhbW1fY2hhcmFjdGVyaXN0aWNfMi4xLjBfVGV4dCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJzZWxlY3Rpb25FbmQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEZXNjcmliZXMgdGhlIGVuZCBwb2ludCBmb3IgcHJvdmlkaW5nIHJlY29yZHMgaW4gdGhpcyBkYXRhIHNldC4iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9zYW1tX29yZy5lY2xpcHNlLmVzbWYuc2FtbV9jaGFyYWN0ZXJpc3RpY18yLjEuMF9UZXh0Ig0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgInNlbGVjdGlvbkNyaXRlcmlhIiBdDQogICAgICB9DQogICAgfQ0KICB9LA0KICAicHJvcGVydGllcyIgOiB7DQogICAgImRpYWdub3N0aWNTZXNzaW9ucyIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIkEgbGlzdCBvZiBkaWFnbm9zdGljIHNlc3Npb25zLiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5mbGVldC5kaWFnbm9zdGljX2RhdGFfMi4wLjBfU2Vzc2lvbkxpc3QiDQogICAgfSwNCiAgICAibWV0YUluZm9ybWF0aW9uIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhpcyBtZXRhIGluZm9ybWF0aW9uIGlzIHZhbGlkIGZvciBhbGwgZW50cmllcyBpbiB0aGlzIGRhdGEgc2V0LiBUaGUgbWV0YSBpbmZvcm1hdGlvbiBpcyB1c2VkIHRvIHRlbGwgdGhlIGRhdGEgY29uc3VtZXIgd2hpY2ggc2VsZWN0aW9uIGNyaXRlcmlhIHdlcmUgYXBwbGllZCBieSB0aGUgZGF0YSBwcm92aWRlci4gIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4LmZsZWV0LmRpYWdub3N0aWNfZGF0YV8yLjAuMF9NZXRhQ2hhcmFjdGVyaXN0aWMiDQogICAgfQ0KICB9LA0KICAicmVxdWlyZWQiIDogWyAiZGlhZ25vc3RpY1Nlc3Npb25zIiBdDQp9 + # urn:samm:io.catenax.material_for_homologation:2.0.0#MaterialForHomologation + dXJuOnNhbW06aW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfaG9tb2xvZ2F0aW9uOjIuMC4wI01hdGVyaWFsRm9ySG9tb2xvZ2F0aW9u: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIk1vZGVsIHRvIGRlcGljdCBtYXRlcmlhbHMgdGhhdCBkZXNjcmliZSBhbmQgY2FsY3VsYXRlIHRoZSByZWN5Y2xpbmcgcXVvdGEgZm9yIHRoZSBob21vbG9nYXRpb24gb2YgYSB2ZWhpY2xlIHR5cGUuIiwNCiAgInR5cGUiIDogIm9iamVjdCIsDQogICJjb21wb25lbnRzIiA6IHsNCiAgICAic2NoZW1hcyIgOiB7DQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfaG9tb2xvZ2F0aW9uXzIuMC4wX0l0ZW1OdW1iZXIxVHJhaXQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyB0byBkZXNjcmliZSB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnQgdG8gd2hpY2ggdGhlIG1hdGVyaWFscyBiZWxvbmcuIiwNCiAgICAgICAgIm1heExlbmd0aCIgOiAyMDANCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfaG9tb2xvZ2F0aW9uXzIuMC4wX1NoYXJlQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAidHlwZSIgOiAibnVtYmVyIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyB0byByZXByZXNlbnQgdGhlIHByb3BvcnRpb24gb2YgdGhlIG1hdGVyaWFsLiINCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfaG9tb2xvZ2F0aW9uXzIuMC4wX01haW5Hcm91cFRyYWl0MSIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNoYXJhY3RlcmlzdGljIHRvIGRlc2NyaWJlIHRoZSBtYWluIGdyb3VwIGNsYXNzaWZpY2F0aW9uIG9mIHRoZSBWREEgc3RhbmRhcmQgMjMxLTEwLiIsDQogICAgICAgICJtYXhMZW5ndGgiIDogMg0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4Lm1hdGVyaWFsX2Zvcl9ob21vbG9nYXRpb25fMi4wLjBfU3ViZ3JvdXBUcmFpdDEiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyB0byBkZXNjcmliZSB0aGUgZmlyc3Qgc3ViZ3JvdXAgY2xhc3NpZmljYXRpb24gb2YgdGhlIFZEQSBzdGFuZGFyZCAyMzEtMTEuIiwNCiAgICAgICAgIm1heExlbmd0aCIgOiAzDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXgubWF0ZXJpYWxfZm9yX2hvbW9sb2dhdGlvbl8yLjAuMF9WREFTdGFuZGFyZElkQ2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNoYXJhY3RlcmlzdGljIHRvIGRlc2NyaWJlIHRoZSBjbGFzc2lmaWNhdGlvbiBvZiBhIFZEQSBzdGFuZGFyZCBJRC4iLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJtYWluR3JvdXAiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJNYWluIGdyb3VwIGFjY29yZGluZyB0byBtYXRlcmlhbCBjbGFzc2lmaWNhdGlvbiBWREEgMjMxLTEwLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfaG9tb2xvZ2F0aW9uXzIuMC4wX01haW5Hcm91cFRyYWl0MSINCiAgICAgICAgICB9LA0KICAgICAgICAgICJzdWJncm91cCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkZpcnN0IHN1Ymdyb3VwIGFjY29yZGluZyB0byBtYXRlcmlhbCBjbGFzc2lmaWNhdGlvbiBWREEgMjMxLTExLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfaG9tb2xvZ2F0aW9uXzIuMC4wX1N1Ymdyb3VwVHJhaXQxIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgIm1haW5Hcm91cCIsICJzdWJncm91cCIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4Lm1hdGVyaWFsX2Zvcl9ob21vbG9nYXRpb25fMi4wLjBfTmFtZVRyYWl0MSIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNoYXJhY3RlcmlzdGljIHRvIGRlc2lnbmF0ZSB0aGUgbWF0ZXJpYWwuIiwNCiAgICAgICAgIm1heExlbmd0aCIgOiA1MA0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4Lm1hdGVyaWFsX2Zvcl9ob21vbG9nYXRpb25fMi4wLjBfU3RhbmRhcmRUcmFpdDEiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEZXNjcmliZXMgdGhlIHN0YW5kYXJkIGluIHdoaWNoIHRoZSBtYXRlcmlhbCBpcyBsaXN0ZWQuIiwNCiAgICAgICAgIm1heExlbmd0aCIgOiAyMA0KICAgICAgfSwNCiAgICAgICJ1cm5fc2FtbV9pby5jYXRlbmF4Lm1hdGVyaWFsX2Zvcl9ob21vbG9nYXRpb25fMi4wLjBfTWF0ZXJpYWxOdW1iZXJUcmFpdDEiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyB0byByZXByZXNlbnQgdGhlIG51bWJlciBvZiB0aGUgbWF0ZXJpYWwgaW4gdGhlIHN0YW5kYXJkLiIsDQogICAgICAgICJtYXhMZW5ndGgiIDogMjANCiAgICAgIH0sDQogICAgICAidXJuX3NhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfaG9tb2xvZ2F0aW9uXzIuMC4wX01hdGVyaWFsRm9ySG9tb2xvZ2F0aW9uRW50aXR5IiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJFbnRpdHkgdGhhdCByZXByZXNlbnRzIHRoZSBtYXRlcmlhbCB0aGF0IGRlc2NyaWJlcyBhbmQgY2FsY3VsYXRlcyB0aGUgcmVjeWNsaW5nIHF1b3RhIGZvciB0aGUgaG9tb2xvZ2F0aW9uIG9mIGEgdmVoaWNsZSB0eXBlLiIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgIml0ZW1OdW1iZXIiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJJbmRpdmlkdWFsIGNvbXBvbmVudCB0byB3aGljaCB0aGUgbWF0ZXJpYWxzIGJlbG9uZyAobm8gbWF0ZXJpYWxzIGFyZSBhc3NpZ25lZCB0byBub2RlcykuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fc2FtbV9pby5jYXRlbmF4Lm1hdGVyaWFsX2Zvcl9ob21vbG9nYXRpb25fMi4wLjBfSXRlbU51bWJlcjFUcmFpdCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJzaGFyZSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlByb3BvcnRpb24gb2YgdGhlIG1hdGVyaWFsLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfaG9tb2xvZ2F0aW9uXzIuMC4wX1NoYXJlQ2hhcmFjdGVyaXN0aWMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAidmRhU3RhbmRhcmRJZCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkdlcm1hbiBxdWFsaXR5IG1hbmFnZW1lbnQgc3lzdGVtIHN0YW5kYXJkLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfaG9tb2xvZ2F0aW9uXzIuMC4wX1ZEQVN0YW5kYXJkSWRDaGFyYWN0ZXJpc3RpYyINCiAgICAgICAgICB9LA0KICAgICAgICAgICJuYW1lIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGVzaWduYXRpb24gb2YgdGhlIG1hdGVyaWFsLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfaG9tb2xvZ2F0aW9uXzIuMC4wX05hbWVUcmFpdDEiDQogICAgICAgICAgfSwNCiAgICAgICAgICAic3RhbmRhcmQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJTdGFuZGFyZCBpbiB3aGljaCB0aGUgbWF0ZXJpYWwgaXMgbGlzdGVkLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfaG9tb2xvZ2F0aW9uXzIuMC4wX1N0YW5kYXJkVHJhaXQxIg0KICAgICAgICAgIH0sDQogICAgICAgICAgIm1hdGVyaWFsTnVtYmVyIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIG51bWJlciBvZiB0aGUgbWF0ZXJpYWwgaW4gdGhlIHN0YW5kYXJkLiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfaG9tb2xvZ2F0aW9uXzIuMC4wX01hdGVyaWFsTnVtYmVyVHJhaXQxIg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgInJlcXVpcmVkIiA6IFsgIml0ZW1OdW1iZXIiLCAic2hhcmUiLCAidmRhU3RhbmRhcmRJZCIsICJuYW1lIiwgInN0YW5kYXJkIiwgIm1hdGVyaWFsTnVtYmVyIiBdDQogICAgICB9LA0KICAgICAgInVybl9zYW1tX2lvLmNhdGVuYXgubWF0ZXJpYWxfZm9yX2hvbW9sb2dhdGlvbl8yLjAuMF9NYXRlcmlhbEZvckhvbW9sb2dhdGlvbkNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyB0byBkZXNjcmliZSBhIHNldCBvZiBtYXRlcmlhbHMgdGhhdCBkZXNjcmliZSBhbmQgY2FsY3VsYXRlIHRoZSByZWN5Y2xpbmcgcXVvdGEgZm9yIHRoZSBob21vbG9nYXRpb24gb2YgYSB2ZWhpY2xlIHR5cGUuIiwNCiAgICAgICAgInR5cGUiIDogImFycmF5IiwNCiAgICAgICAgIml0ZW1zIiA6IHsNCiAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfaG9tb2xvZ2F0aW9uXzIuMC4wX01hdGVyaWFsRm9ySG9tb2xvZ2F0aW9uRW50aXR5Ig0KICAgICAgICB9LA0KICAgICAgICAidW5pcXVlSXRlbXMiIDogdHJ1ZQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgInByb3BlcnRpZXMiIDogew0KICAgICJtYXRlcmlhbEZvckhvbW9sb2dhdGlvbiIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogIlByb3BlcnR5IHRoYXQgcmVmZXJlbmNlcyB0aGUgbWF0ZXJpYWwgdGhhdCBkZXNjcmliZXMgYW5kIGNhbGN1bGF0ZSB0aGUgcmVjeWNsaW5nIHF1b3RhIGZvciB0aGUgaG9tb2xvZ2F0aW9uIG9mIGEgdmVoaWNsZSB0eXBlLiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX3NhbW1faW8uY2F0ZW5heC5tYXRlcmlhbF9mb3JfaG9tb2xvZ2F0aW9uXzIuMC4wX01hdGVyaWFsRm9ySG9tb2xvZ2F0aW9uQ2hhcmFjdGVyaXN0aWMiDQogICAgfQ0KICB9LA0KICAicmVxdWlyZWQiIDogWyAibWF0ZXJpYWxGb3JIb21vbG9nYXRpb24iIF0NCn0= + # urn:samm:io.catenax.battery.product_description:1.0.1#ProductDescription + dXJuOnNhbW06aW8uY2F0ZW5heC5iYXR0ZXJ5LnByb2R1Y3RfZGVzY3JpcHRpb246MS4wLjEjUHJvZHVjdERlc2NyaXB0aW9u: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogIkFzcGVjdCB0byBkZXNjcmliZSBiYXR0ZXJ5IHNwZWNpZmljIGluZm9ybWF0aW9uIHN1Y2ggYXMgdGhlIHN0YXRlIG9mIGhlYWx0aCBhbmQgdGhlIGNhcGFjaXR5IiwNCiAgInR5cGUiIDogIm9iamVjdCIsDQogICJjb21wb25lbnRzIiA6IHsNCiAgICAic2NoZW1hcyIgOiB7DQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5iYXR0ZXJ5LnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjFfQ2FwYWNpdHkiIDogew0KICAgICAgICAidHlwZSIgOiAibnVtYmVyIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDYXBhY2l0eSBpbiBmYXJhZCINCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5iYXR0ZXJ5LnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjFfUGVyZm9ybWFuY2VJbmRpY2F0b3JFbnRpdHkiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogImluZGljYXRlcyB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIGJhdHRlcnkiLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJlbGVjdHJpY3RpeUNhcGFjaXR5TWluIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIG1pbmltYWwgZWxlY3RyaWMgY2FwYWNpdHkiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguYmF0dGVyeS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4xX0NhcGFjaXR5Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImVsZWN0cmljdGl5Q2FwYWNpdHlNYXgiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJUaGUgbWF4aW1hbCBlbGVjdHJpYyBjYXBhY2l0eSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5iYXR0ZXJ5LnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjFfQ2FwYWNpdHkiDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicmVxdWlyZWQiIDogWyAiZWxlY3RyaWN0aXlDYXBhY2l0eU1pbiIsICJlbGVjdHJpY3RpeUNhcGFjaXR5TWF4IiBdDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguYmF0dGVyeS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4xX0JhdHRlcnlUeXBlIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGlmZmVyZW50YXRpb24gYmV0d2VlbiBIaWdoIFZvbHRhZ2UgQmF0dGVyeSA9IEhWQiBhbmQgTG93IFZvbHRhZ2UgQmF0dGVyeSA9IExWQiIsDQogICAgICAgICJlbnVtIiA6IFsgIkhWQiIsICJMVkIiIF0NCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5iYXR0ZXJ5LnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjFfUGVyY2VudGFnZSIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJudW1iZXIiLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIlBlcmNlbnRhZ2UiDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLm9wZW5tYW51ZmFjdHVyaW5nX2NoYXJhY3RlcmlzdGljXzIuMC4wX1RleHQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEZXNjcmliZXMgYSBQcm9wZXJ0eSB3aGljaCBjb250YWlucyBwbGFpbiB0ZXh0LiBUaGlzIGlzIGludGVuZGVkIGV4Y2x1c2l2ZWx5IGZvciBodW1hbiByZWFkYWJsZSBzdHJpbmdzLCBub3QgZm9yIGlkZW50aWZpZXJzLCBtZWFzdXJlbWVudCB2YWx1ZXMsIGV0Yy4iDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguYmF0dGVyeS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4xX0xpZmVjeWNsZVBoYXNlcyIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogInRlbXBvcmFyeSBkZWZpbml0aW9uIG9mIGxpZmVjeWNsZSBwaGFzZXMgYXMgZm9sbG93aW5nIGluIGVudW1lcmF0aW9uIGZvcjogYXMgc3BlY2lmaWVkIGJ5IE9FTSwgYXMgc3BlY2lmaWVkIGJ5IG90aGVyLCBhcyByZWNpZXZlZCBieSBkaXNtYW50bGluZywgYXMgbWFpbnRhaW5lZCBieSB3b3Jrc2hvcCIsDQogICAgICAgICJlbnVtIiA6IFsgImFzIHNwZWNpZmllZCBieSBPRU0iLCAiYXMgc3BlY2lmaWVkIGJ5IG90aGVyIiwgImFzIHJlY2lldmVkIGJ5IGRpc21hbnRsaW5nIiBdDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguYmF0dGVyeS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4xX01pblN0YXRlT2ZIZWFsdGhDaGFyYWN0ZXJpc3RpYyIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiQ2hhcmFjdGVyaXN0aWMgdG8gZGVzY3JpYmUgYSBzZXQgb2YgYXR0cmlidXRlcyB3aGljaCBzdGF0ZSB0aGUgbWluaW1hbCBzdGF0ZSBvZiBoZWFsdCBvZiBhIGJhdHRlcnkiLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJtaW5pbWFsU3RhdGVPZkhlYWx0aFZhbHVlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVmFsdWUgb2YgdGhlIG1pbmltYWwgc3RhdGUgb2YgaGVhbHRoIGFzIHBlcmNlbnRhZ2UiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguYmF0dGVyeS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4xX1BlcmNlbnRhZ2UiDQogICAgICAgICAgfSwNCiAgICAgICAgICAic3BlY2lmaWNhdG9ySWQiIDogew0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJzcGVjaWZpY2F0b3Igb2YgdGhlIG1pbmltYWwgc3RhdGUgb2YgaGVhbHRoIGRlZmluZWQgYnkgYW4gaWRlbnRpZmllciIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8ub3Blbm1hbnVmYWN0dXJpbmdfY2hhcmFjdGVyaXN0aWNfMi4wLjBfVGV4dCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJtaW5pbWFsU3RhdGVPZkhlYWx0aFBoYXNlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAibWluaW1hbCBTdGF0ZSBPZiBIZWFsdGggUGhhc2UgZm9yIHRoZSBiYXR0ZXJ5IiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LmJhdHRlcnkucHJvZHVjdF9kZXNjcmlwdGlvbl8xLjAuMV9MaWZlY3ljbGVQaGFzZXMiDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicmVxdWlyZWQiIDogWyAibWluaW1hbFN0YXRlT2ZIZWFsdGhWYWx1ZSIsICJzcGVjaWZpY2F0b3JJZCIsICJtaW5pbWFsU3RhdGVPZkhlYWx0aFBoYXNlIiBdDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXguYmF0dGVyeS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4xX0RhdGVUaW1lc3RhbXAiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImZvcm1hdCIgOiAiZGF0ZSIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiRGF0ZSBUaW1lc3RhbXAgZm9yIGN1cnJlbnQgc3RhdGUgb2YgaGVhbHRoIg0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LmJhdHRlcnkucHJvZHVjdF9kZXNjcmlwdGlvbl8xLjAuMV9DdXJyZW50U3RhdGVPZkhlYWx0aEVudGl0eSIgOiB7DQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAiZW50aXR5IHRvIGRlc2NyaWJlIGZ1cnRoZXIgYXR0cmlidXRlcyBvZiB0aGUgY3VycmVudCBzdGF0ZSBvZiBoZWFsdGggb2YgdGhlIHNwZWNpZmllZCBiYXR0ZXJ5IiwNCiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsDQogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsNCiAgICAgICAgICAiY3VycmVudFN0YXRlT2ZIZWFsdGhWYWx1ZSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogImN1cnJlbnQgdmFsdWUgYXMgcGVyY2VudGFnZSBvZiB0aGUgc3RhdGUgb2YgaGVhbHRoIGF0dHJpYnV0ZSIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5iYXR0ZXJ5LnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjFfUGVyY2VudGFnZSINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjdXJyZW50U3RhdGVPZkhlYWx0aFRpbWVzdGFtcCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogInRpbWVzdGFtcCBvZiB0aGUgaW5wdXQgZm9yIHRoZSBjdXJyZW50IHN0YXRlIG9mIGhlYWx0aCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5iYXR0ZXJ5LnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjFfRGF0ZVRpbWVzdGFtcCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJjdXJyZW50U3RhdGVPZkhlYWx0aFBoYXNlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiY3VycmVudCBzdGF0ZSBvZiBoZWFsdGggcGhhc2Ugb2YgdGhlIGJhdHRlcnkgYXMgZW51bWVyYXRpb24iLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguYmF0dGVyeS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4xX0xpZmVjeWNsZVBoYXNlcyINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJjdXJyZW50U3RhdGVPZkhlYWx0aFZhbHVlIiwgImN1cnJlbnRTdGF0ZU9mSGVhbHRoVGltZXN0YW1wIiwgImN1cnJlbnRTdGF0ZU9mSGVhbHRoUGhhc2UiIF0NCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC5iYXR0ZXJ5LnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjFfQ3VycmVudFN0YXRlIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDdXJyZW50IFN0YXRlIG9mIHRoZSBiYXR0ZXJ5IiwNCiAgICAgICAgInR5cGUiIDogImFycmF5IiwNCiAgICAgICAgIml0ZW1zIiA6IHsNCiAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5iYXR0ZXJ5LnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjFfQ3VycmVudFN0YXRlT2ZIZWFsdGhFbnRpdHkiDQogICAgICAgIH0sDQogICAgICAgICJ1bmlxdWVJdGVtcyIgOiB0cnVlDQogICAgICB9DQogICAgfQ0KICB9LA0KICAicHJvcGVydGllcyIgOiB7DQogICAgInBlcmZvcm1hbmNlSW5kaWNhdG9yIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIHBlcmZvcm1hbmNlIGluZGljYXRvciIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5iYXR0ZXJ5LnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjFfUGVyZm9ybWFuY2VJbmRpY2F0b3JFbnRpdHkiDQogICAgfSwNCiAgICAidHlwZSIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogInR5cGUgb2YgdGhlIGJhdHRlcnkiLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguYmF0dGVyeS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4xX0JhdHRlcnlUeXBlIg0KICAgIH0sDQogICAgIm1pbmltYWxTdGF0ZU9mSGVhbHRoIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiZGVzY3JpYmVzIHRoZSBtaW5pbWFsIHN0YXRlIG9mIGhlYWx0aCAoU09IKSBvZiB0aGUgbWFudWZhY3R1cmVyIGZvciB0aGUgYmF0dGVyeSB0byBiZSByYXRlZCBhcyByZXVzYWJsZS4gVGhlIHN0YXRlIG9mIGhlYWx0aCBpcyBkZWZpbmVkIGFzIHRoZSByYXRpbyBvZiB0aGUgbWF4aW11bSBiYXR0ZXJ5IGNoYXJnZSB0byBpdHMgcmF0ZWQgY2FwYWNpdHkuIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LmJhdHRlcnkucHJvZHVjdF9kZXNjcmlwdGlvbl8xLjAuMV9NaW5TdGF0ZU9mSGVhbHRoQ2hhcmFjdGVyaXN0aWMiDQogICAgfSwNCiAgICAiY3VycmVudFN0YXRlT2ZIZWFsdGgiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJ0aGUgY3VycmVudCBzdGF0ZSBvZiBoZWFsdGggb2YgdGhlIGJhdHRlcnkuIFRoZSBzdGF0ZSBvZiBoZWFsdGggaXMgZGVmaW5lZCBhcyB0aGUgcmF0aW8gb2YgdGhlIG1heGltdW0gYmF0dGVyeSBjaGFyZ2UgdG8gaXRzIHJhdGVkIGNhcGFjaXR5IiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LmJhdHRlcnkucHJvZHVjdF9kZXNjcmlwdGlvbl8xLjAuMV9DdXJyZW50U3RhdGUiDQogICAgfQ0KICB9LA0KICAicmVxdWlyZWQiIDogWyAicGVyZm9ybWFuY2VJbmRpY2F0b3IiLCAidHlwZSIsICJtaW5pbWFsU3RhdGVPZkhlYWx0aCIsICJjdXJyZW50U3RhdGVPZkhlYWx0aCIgXQ0KfQ== + # urn:samm:io.catenax.vehicle.product_description:1.0.0#ProductDescription + dXJuOnNhbW06aW8uY2F0ZW5heC52ZWhpY2xlLnByb2R1Y3RfZGVzY3JpcHRpb246MS4wLjAjUHJvZHVjdERlc2NyaXB0aW9u: ew0KICAiJHNjaGVtYSIgOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLA0KICAiZGVzY3JpcHRpb24iIDogInZlaGljbGUgc3BlY2lmaWMgZGF0YSIsDQogICJ0eXBlIiA6ICJvYmplY3QiLA0KICAiY29tcG9uZW50cyIgOiB7DQogICAgInNjaGVtYXMiIDogew0KICAgICAgInVybl9iYW1tX2lvLm9wZW5tYW51ZmFjdHVyaW5nX2NoYXJhY3RlcmlzdGljXzIuMC4wX1RleHQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJEZXNjcmliZXMgYSBQcm9wZXJ0eSB3aGljaCBjb250YWlucyBwbGFpbiB0ZXh0LiBUaGlzIGlzIGludGVuZGVkIGV4Y2x1c2l2ZWx5IGZvciBodW1hbiByZWFkYWJsZSBzdHJpbmdzLCBub3QgZm9yIGlkZW50aWZpZXJzLCBtZWFzdXJlbWVudCB2YWx1ZXMsIGV0Yy4iDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXgudmVoaWNsZS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4wX0VxdWlwbWVudFZhcmlhbnRFbnRpdHkiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogImRlc2NyaWJlcyBkaWZmZXJlbnQgdmVoaWNsZSBlcXVpcG1lbnQgdmFyaWFudHMiLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJjb2RlIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGVxdWlwbWVudCB2YXJpYW50cyBjb2RlIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5vcGVubWFudWZhY3R1cmluZ19jaGFyYWN0ZXJpc3RpY18yLjAuMF9UZXh0Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgImRlc2NyaXB0aW9uIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGVxdWlwbWVudCB2YXJpYW50cyBkZXNjcmlwdGlvbiIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8ub3Blbm1hbnVmYWN0dXJpbmdfY2hhcmFjdGVyaXN0aWNfMi4wLjBfVGV4dCINCiAgICAgICAgICB9LA0KICAgICAgICAgICJncm91cCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIlRoZSBlcXVpcG1lbnQgdmFyaWFudHMgZ3JvdXAiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLm9wZW5tYW51ZmFjdHVyaW5nX2NoYXJhY3RlcmlzdGljXzIuMC4wX1RleHQiDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicmVxdWlyZWQiIDogWyAiY29kZSIsICJkZXNjcmlwdGlvbiIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnZlaGljbGUucHJvZHVjdF9kZXNjcmlwdGlvbl8xLjAuMF9FcXVpcG1lbnRWYXJpYW50Q2hhcmFjdGVyaXN0aWMiIDogew0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIkNoYXJhY3RlcmlzdGljIHRvIGRlc2NyaWJlIGEgc2V0IG9mIGVxdWlwbWVudCBjb2RlcyBpZGVudGlmaWVkIGJ5IGEgY29kZSwgZ3JvdXAgYW5kIGRlc2NyaXB0aW9uLiBUaGUgbGlzdCB3aWxsIHVuZGVyZ28gZnVydGhlciBzdGFuZGFyZGl6YXRpb24gaW4gdXBjb21pbmcgdmVyc2lvbnMuIiwNCiAgICAgICAgInR5cGUiIDogImFycmF5IiwNCiAgICAgICAgIml0ZW1zIiA6IHsNCiAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC52ZWhpY2xlLnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjBfRXF1aXBtZW50VmFyaWFudEVudGl0eSINCiAgICAgICAgfSwNCiAgICAgICAgInVuaXF1ZUl0ZW1zIiA6IHRydWUNCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC52ZWhpY2xlLnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjBfRGF0ZVRpbWVzdGFtcCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJzdHJpbmciLA0KICAgICAgICAiZm9ybWF0IiA6ICJkYXRlIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyB0byBkZXNjcmliZSBhIHRpbWUgc3RhbXAiDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXgudmVoaWNsZS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4wX0N1YmljQ2FwYWNpdHkiIDogew0KICAgICAgICAidHlwZSIgOiAibnVtYmVyIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJjdWJpYyBjYXBhY2l0eSBvZiB0aGUgZW5naW5lIg0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnZlaGljbGUucHJvZHVjdF9kZXNjcmlwdGlvbl8xLjAuMF9FbmdpbmVQb3dlciIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJudW1iZXIiLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogImVuZ2luZSBwb3dlciBleHByZXNzZWQgaW4ga2lsb3dhdHQiDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXgudmVoaWNsZS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4wX0VuZ2luZUNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDaGFyYWN0ZXJpc3RpYyB0byBkZXNjcmliZSB0aGUgbW9yZSBzcGVjaWZpYyBkZXRhaWxzIG9mIHRoZSBlbmdpbmUiLA0KICAgICAgICAidHlwZSIgOiAib2JqZWN0IiwNCiAgICAgICAgInByb3BlcnRpZXMiIDogew0KICAgICAgICAgICJzaXplIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAic2l6ZSBvZiB0aGUgZW5naW5lIGluIGN1YmljIGNhcGFjaXR5IiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnZlaGljbGUucHJvZHVjdF9kZXNjcmlwdGlvbl8xLjAuMF9DdWJpY0NhcGFjaXR5Ig0KICAgICAgICAgIH0sDQogICAgICAgICAgInBvd2VyIiA6IHsNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiIgOiAiZW5naW5lIHBvd2VyIGlzIHRoZSBwb3dlciB0aGF0IGFuIGVuZ2luZSBjYW4gcHV0IG91dCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC52ZWhpY2xlLnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjBfRW5naW5lUG93ZXIiDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAicmVxdWlyZWQiIDogWyAic2l6ZSIsICJwb3dlciIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnZlaGljbGUucHJvZHVjdF9kZXNjcmlwdGlvbl8xLjAuMF9EaXN0YW5jZSIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJudW1iZXIiLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogImRpc3RhbmNlIGluIGtpbG9tZXRyZSINCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC52ZWhpY2xlLnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjBfTGlmZWN5Y2xlUGhhc2VzIiA6IHsNCiAgICAgICAgInR5cGUiIDogInN0cmluZyIsDQogICAgICAgICJkZXNjcmlwdGlvbiIgOiAidGVtcG9yYXJ5IGRlZmluaXRpb24gb2YgbGlmZWN5Y2xlIHBoYXNlcyBhcyBmb2xsb3dpbmcgaW4gZW51bWVyYXRpb24gZm9yOiBhcyBzcGVjaWZpZWQgYnkgT0VNLCBhcyBidWlsdCBieSBPRU0sIGFzIG1haW50YWluZWQgYnkgd29ya3Nob3AsIGFzIHJlY2lldmVkIGJ5IGRpc21hbnRsaW5nIiwNCiAgICAgICAgImVudW0iIDogWyAiYXMgbWFpbnRhaW5lZCBieSB3b3Jrc2hvcCIsICJhcyByZWNpZXZlZCBieSBkaXNtYW50bGluZyIgXQ0KICAgICAgfSwNCiAgICAgICJ1cm5fYmFtbV9pby5jYXRlbmF4LnZlaGljbGUucHJvZHVjdF9kZXNjcmlwdGlvbl8xLjAuMF9NaWxlYWdlRW50aXR5IiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJkZWZpbml0aW9uIG9mIG1pbGVhZ2UgYXR0cmlidXRlcyIsDQogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLA0KICAgICAgICAicHJvcGVydGllcyIgOiB7DQogICAgICAgICAgIm1pbGVhZ2VEaXN0YW5jZSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogImRpc3RhbmNlIHRoZSB2ZWhpY2xlIGhhcyB0cmF2ZWxsZWQiLA0KICAgICAgICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXgudmVoaWNsZS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4wX0Rpc3RhbmNlIg0KICAgICAgICAgIH0sDQogICAgICAgICAgIm1pbGVhZ2VQaGFzZSIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogIkxpZmVjeWNsZSBwaGFzZSBpbiB3aGljaCB0aGUgbWlsZWFnZSB3YXMgbWVhc3VyZWQuIiwNCiAgICAgICAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnZlaGljbGUucHJvZHVjdF9kZXNjcmlwdGlvbl8xLjAuMF9MaWZlY3ljbGVQaGFzZXMiDQogICAgICAgICAgfSwNCiAgICAgICAgICAibWlsZWFnZVRpbWVzdGFtcCIgOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iIDogInRpbWVzdGFtcCB3aGVuIHRoZSBtaWxlYWdlIHdhcyBtZWFzdXJlZCIsDQogICAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC52ZWhpY2xlLnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjBfRGF0ZVRpbWVzdGFtcCINCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICJyZXF1aXJlZCIgOiBbICJtaWxlYWdlRGlzdGFuY2UiLCAibWlsZWFnZVBoYXNlIiwgIm1pbGVhZ2VUaW1lc3RhbXAiIF0NCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC52ZWhpY2xlLnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjBfTWlsZWFnZUNoYXJhY3RlcmlzdGljIiA6IHsNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJkZWZpbml0aW9uIG9mIG1pbGVhZ2Ugb2YgYSB2ZWhpY2xlIiwNCiAgICAgICAgInR5cGUiIDogImFycmF5IiwNCiAgICAgICAgIml0ZW1zIiA6IHsNCiAgICAgICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC52ZWhpY2xlLnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjBfTWlsZWFnZUVudGl0eSINCiAgICAgICAgfSwNCiAgICAgICAgInVuaXF1ZUl0ZW1zIiA6IHRydWUNCiAgICAgIH0sDQogICAgICAidXJuX2JhbW1faW8uY2F0ZW5heC52ZWhpY2xlLnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjBfRnVlbFR5cGUiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJlbnVtZXJhdGlvbiBvZiBwb3NzaWJsZSBmdWVsIHR5cGVzIG9mIGEgdmVoaWNsZSIsDQogICAgICAgICJlbnVtIiA6IFsgIlVuYmVrYW5udCIsICJEaWVzZWwiLCAiQmVuemluIiwgIlZpZWxzdG9mZiIsICJFbGVrdHJvIiwgIkZs/HNzaWdnYXMiLCAiQmVuemluL0Zs/HNzaWdnYXMiLCAiQmVuemluL2tvbXAuRXJkZ2FzIiwgIkh5YnIuQmVuemluL0UiLCAiRXJkZ2FzIE5HIiwgIkh5YnIuRGllc2VsL0UiLCAiV2Fzc2Vyc3RvZmYiLCAiSHlici5XYXNzZXJzdC4vRSIsICJXYXNzZXJzdG9mZi9CZW56aW4iLCAiV2Fzc2Vyc3QuL0Jlbnppbi9FIiwgIkJaL1dhc3NlcnN0b2ZmIiwgIkJaL0JlbnppbiIsICJCWi9NZXRoYW5vbCIsICJCWi9FdGhhbm9sIiwgIkh5YnIuVmllbHN0b2ZmL0UiLCAiTWV0aGFuIiwgIkJlbnppbi9NZXRoYW4iLCAiSHlici5FcmRnYXMvRSIsICJCZW56aW4vRXRoYW5vbCIsICJIeWJyLkZs/HNzaWdnYXMvRSIsICJIeWJyLkIvRSBleHQuYXVmbC4iLCAiSHlici5EL0UgZXh0LmF1ZmwuIiwgIkh5YnIuTFBHL0UgZXh0LmF1ZmwuIiwgIkh5YnIuVy9FIGV4dC5hdWZsLiIsICJIeWJyLlYvRSBleHQuYXVmbC4iLCAiSHlici5ORy9FIGV4dC5hdWZsLiIsICJIeWJyLldvZC5CL0VleHQuYXVmbCIsICJXYXNzZXJzdG9mZi9ORyIsICJIeWJyLlcvTkcvRSBleHQuYXVmbCIsICJFdGhhbm9sIiwgIkh5YnIuQlovVy9FIiwgIkh5YnIuQlovVy9FIGV4dC4gYXVmbC4iLCAiWndlaXN0b2ZmIExORy9EaWVzZWwiLCAiVmVyZmz8c3NpZ3RlcyBFcmRnYXMgKExORykiLCAiQW5kZXJlIiBdDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXgudmVoaWNsZS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4wX1dlaWdodCIgOiB7DQogICAgICAgICJ0eXBlIiA6ICJudW1iZXIiLA0KICAgICAgICAiZGVzY3JpcHRpb24iIDogIndlaWdodCBvZiBhbiBvYmplY3QiDQogICAgICB9LA0KICAgICAgInVybl9iYW1tX2lvLmNhdGVuYXgudmVoaWNsZS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4wX0tiYVZhcmlhbnQiIDogew0KICAgICAgICAidHlwZSIgOiAic3RyaW5nIiwNCiAgICAgICAgImRlc2NyaXB0aW9uIiA6ICJDdXJyZW50IHZlcnNpb24gb2YgdGhlIEVudW1lcmF0aW9uIGlzIHN1Yi1zZXQgb2YgbGlzdCBkZWZpbmVkIGZyb20gdGhlIEdlcm1hbiBGZWRlcmFsIE9mZmljZSBmb3IgbW90b3IgdmVoaWNsZXMuICIsDQogICAgICAgICJlbnVtIiA6IFsgIkxpbW91c2luZSIsICJTY2hy5GdoZWNrbGltb3VzaW5lIiwgIktvbWJpbGltb3VzaW5lIiwgIkNvdXDpIiwgIkthYnJpby1MaW1vdXNpbmUiLCAiQ2FicmlvLUxpbW91c2luZSIsICJNZWhyendlY2tmYWhyemV1ZyIsICJQa3ctUGljay11cCIsICJWYW4iLCAiUGljay11cCIgXQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgInByb3BlcnRpZXMiIDogew0KICAgICJlcXVpcG1lbnRWYXJpYW50cyIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogImVxdWlwbWVudCB2YXJpYW50cyB3aGljaCBhcmUgYnVpbGQgaW50byBhIHNwZWNpZmljIHZlaGljbGUiLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXgudmVoaWNsZS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4wX0VxdWlwbWVudFZhcmlhbnRDaGFyYWN0ZXJpc3RpYyINCiAgICB9LA0KICAgICJwcm9kdWN0aW9uRGF0ZUdNVCIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogInRoZSBwcm9kdWN0aW9uIGRhdGEgaW4gR01UIHRpbWUgem9uZSIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC52ZWhpY2xlLnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjBfRGF0ZVRpbWVzdGFtcCINCiAgICB9LA0KICAgICJlbmdpbmUiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJlbmdpbmUgb2YgdGhlIHZlaGljbGUiLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXgudmVoaWNsZS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4wX0VuZ2luZUNoYXJhY3RlcmlzdGljIg0KICAgIH0sDQogICAgIm1pbGVhZ2UiIDogew0KICAgICAgImRlc2NyaXB0aW9uIiA6ICJtaWxlYWdlIG9mIHRoZSB2ZWhpY2xlIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnZlaGljbGUucHJvZHVjdF9kZXNjcmlwdGlvbl8xLjAuMF9NaWxlYWdlQ2hhcmFjdGVyaXN0aWMiDQogICAgfSwNCiAgICAiZnVlbCIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogInRoZSBmdWVsIHR5cGUgb2YgdGhlIHZlaGljbGUiLA0KICAgICAgIiRyZWYiIDogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXgudmVoaWNsZS5wcm9kdWN0X2Rlc2NyaXB0aW9uXzEuMC4wX0Z1ZWxUeXBlIg0KICAgIH0sDQogICAgImVtcHR5V2VpZ2h0IiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiVGhlIGVtcHR5IHdlaWdodCBvZiB0aGUgdmVoaWNsZSBpbiBrZyBhcyBzcGVjaWZpZWQuIEZvciBtb3RvciB2ZWhpY2xlcyBvZiBjbGFzcyBNMSByZWdpc3RlcmVkIHVwIHRvIERlY2VtYmVyIDMxLCAxOTk2OiBFbXB0eSB3ZWlnaHQgYWNjb3JkaW5nIHRvIHZlaGljbGUgcmVnaXN0cmF0aW9uIGNlcnRpZmljYXRlIG9yIHJlZ2lzdHJhdGlvbiBjZXJ0aWZpY2F0ZSBQYXJ0IEkgbWludXMgd2VpZ2h0IG9mIHRhbmsgY29udGVudHMgYXQgOTAgcGVyY2VudCBmaWxsaW5nLiBGb3IgbW90b3IgdmVoaWNsZXMgb2YgY2F0ZWdvcnkgTTEgcmVnaXN0ZXJlZCBvbiBvciBhZnRlciBKYW51YXJ5IDEsIDE5OTc6IEVtcHR5IHdlaWdodCBhY2NvcmRpbmcgdG8gdmVoaWNsZSByZWdpc3RyYXRpb24gY2VydGlmaWNhdGUgb3IgcmVnaXN0cmF0aW9uIGNlcnRpZmljYXRlIFBhcnQgSSBtaW51cyB3ZWlnaHQgb2YgdGFuayBjb250ZW50cyBhdCA5MCBwZXJjZW50IGZpbGxpbmcgYW5kIG1pbnVzIHdlaWdodCBvZiBkcml2ZXIgKDc1IGtnKS4gRm9yIG1vdG9yIHZlaGljbGVzIG9mIGNsYXNzIE4xOiBlbXB0eSB3ZWlnaHQgYWNjb3JkaW5nIHRvIHRoZSB2ZWhpY2xlIHJlZ2lzdHJhdGlvbiBkb2N1bWVudCBvciByZWdpc3RyYXRpb24gY2VydGlmaWNhdGUgUGFydCBJIG1pbnVzIHRoZSB3ZWlnaHQgb2YgdGhlIHRhbmsgY29udGVudHMgd2l0aCBhIDkwIHBlcmNlbnQgZmlsbGluZyBhbmQgbWludXMgdGhlIHdlaWdodCBvZiB0aGUgZHJpdmVyICg3NSBrZykuIiwNCiAgICAgICIkcmVmIiA6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnZlaGljbGUucHJvZHVjdF9kZXNjcmlwdGlvbl8xLjAuMF9XZWlnaHQiDQogICAgfSwNCiAgICAidmVoaWNsZU1vZGVsIiA6IHsNCiAgICAgICJkZXNjcmlwdGlvbiIgOiAiYmFzZSBtb2RlbCAvIGJhc2ljIHZlaGljbGUgdHlwZSIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8ub3Blbm1hbnVmYWN0dXJpbmdfY2hhcmFjdGVyaXN0aWNfMi4wLjBfVGV4dCINCiAgICB9LA0KICAgICJib2R5VmFyaWFudCIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogInZlaGljbGUgdmFyaWFudCAtIEJvZHkgc2hhcGVzOiBTZWRhbiwgc3RhdGlvbiB3YWdvbiwgaGF0Y2hiYWNrLCBjb3VwZSwgY29udmVydGlibGUsIFNVViwgcGlja3VwLCBEb2thIChkb3VibGUgY2FiKSwgZXRjLiBBbHNvIHNwZWNpYWwgbW9kZWxzIHRoYXQgbWF5IGRpZmZlciBmcm9tIHRoZSBiYXNpYyBzaGFwZXMgKGUuZy4gQk1XIE0tc2VyaWVzLCBBdWRpIFMtc2VyaWVzLCBMb25nIHZlcnNpb24sIHJpZ2h0LWhhbmQgZHJpdmUsIHNwZWNpYWwgdmVoaWNsZXMgKGFybW9yKS4gZXRjLiApLiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC52ZWhpY2xlLnByb2R1Y3RfZGVzY3JpcHRpb25fMS4wLjBfS2JhVmFyaWFudCINCiAgICB9LA0KICAgICJhbm9ueW1pc2VkSWRlbnRpZmllciIgOiB7DQogICAgICAiZGVzY3JpcHRpb24iIDogImFub255bWlzZWQgSWRlbnRpZmllclZlaGljbGUuIENhbiBiZSBhbiBhbm9ueW1pc2VkIG51bWJlciBjb252ZXJ0ZWQgZnJvbSBhIFZJTiIsDQogICAgICAiJHJlZiIgOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8ub3Blbm1hbnVmYWN0dXJpbmdfY2hhcmFjdGVyaXN0aWNfMi4wLjBfVGV4dCINCiAgICB9DQogIH0sDQogICJyZXF1aXJlZCIgOiBbICJlcXVpcG1lbnRWYXJpYW50cyIsICJwcm9kdWN0aW9uRGF0ZUdNVCIsICJlbmdpbmUiLCAibWlsZWFnZSIsICJmdWVsIiwgImVtcHR5V2VpZ2h0IiwgInZlaGljbGVNb2RlbCIsICJib2R5VmFyaWFudCIsICJhbm9ueW1pc2VkSWRlbnRpZmllciIgXQ0KfQ== + +minioUser: "minio" # +minioPassword: "minioPass" # +oauth2: + clientTokenUri: http://umbrella-centralidp:80/auth/realms/CX-Central/protocol/openid-connect/token + semantics: + clientId: sa-cl3-cx-1 + clientSecret: jzTX8jBBpDCag224ihfhmBP5NABGqdsf + discovery: + clientId: sa-cl3-cx-1 + clientSecret: jzTX8jBBpDCag224ihfhmBP5NABGqdsf +edc: + controlplane: + endpoint: + data: http://umbrella-dataconsumer-1-edc-controlplane:8081/management + apikey: + secret: "TEST1" + +minio: + resources: + requests: + cpu: 0.25 + memory: 1Gi + rootUser: "minio" # + rootPassword: "minioPass" # diff --git a/docs/src/docs/arc42/cross-cutting/full.adoc b/docs/src/docs/arc42/cross-cutting/full.adoc index 3892a86cbb..142e20bac2 100644 --- a/docs/src/docs/arc42/cross-cutting/full.adoc +++ b/docs/src/docs/arc42/cross-cutting/full.adoc @@ -6,3 +6,4 @@ include::architecture-design-patterns.adoc[leveloffset=+1] include::under-the-hood.adoc[leveloffset=+1] include::development-concepts.adoc[leveloffset=+1] include::operational-concepts.adoc[leveloffset=+1] +include::testing.adoc[leveloffset=+1] diff --git a/docs/src/docs/arc42/cross-cutting/index.adoc b/docs/src/docs/arc42/cross-cutting/index.adoc index bf85a8fe28..c8d5654cfc 100644 --- a/docs/src/docs/arc42/cross-cutting/index.adoc +++ b/docs/src/docs/arc42/cross-cutting/index.adoc @@ -6,3 +6,4 @@ - xref:under-the-hood.adoc["Under-the-hood" concepts] - xref:development-concepts.adoc[Development concepts] - xref:operational-concepts.adoc[Operational concepts] +- xref:testing.adoc[Testing concepts] diff --git a/docs/src/docs/arc42/cross-cutting/testing.adoc b/docs/src/docs/arc42/cross-cutting/testing.adoc new file mode 100644 index 0000000000..56d135914f --- /dev/null +++ b/docs/src/docs/arc42/cross-cutting/testing.adoc @@ -0,0 +1,37 @@ += Testing concepts + +== Umbrella + +The https://github.com/eclipse-tractusx/tractus-x-umbrella[umbrella chart] provides a pre-configured catena-x network which includes all necessary components for the IRS to work. + +For IRS this includes: + +* Central Idp +* Edc Provider +** Digital Twin Registry +** Submodel Backend +** EDC +** Vault +* EDC Consumer +** EDC +** Vault +* Discovery Service +* EDC Discovery * +* IATP * +* BDRS +* Semantic Hub + +Services marked with * are currently mocked, since there is no FOSS-Component available for IATP/DIM and the configuration and data seeding for EDC Discovery is not possible at the moment. + +These Service are used together with the IRS Helm Chart to provide a E2E Testing Infrastructure which can be spun up directly in a GitHub Workflow to execute E2E Tests against. + +The action https://github.com/eclipse-tractusx/item-relationship-service/blob/main/.github/actions/setup-umbrella-env/action.yaml creates this environment and seeds Testdata for IRS use-cases directly to the EDC Provider components. +After Umbrella setup and seeding, the IRS docker image is built based on the branch, the workflow is run from, and the IRS helm chart from the same branch is installed. +This ensures, that features on branches can be tested as well. + +The workflows https://github.com/eclipse-tractusx/item-relationship-service/blob/main/.github/workflows/tavern-UMBRELLA.yml[tavern-UMBRELLA.yaml] and https://github.com/eclipse-tractusx/item-relationship-service/blob/main/.github/workflows/cucumber-integration-test-UMBRELLA.yaml[cucumber-integration-test-UMBRELLA.yaml] use the action to execute the tests. +Test results are automatically added to the workflow summary and in case of the cucumber tests uploaded to the https://reports.cucumber.io/report-collections/b82bcadd-0d19-41c4-ae1a-c623e259c36f[IRS Cucumber Report] + +Due to limitations in the IATP mock, the only way of using multiple BPNs in the test data is to spin up multiple EDC provider instances. +However, the chart is used inside GitHub Workflows, so compute resources are limited. +For this reason, the IRS test data was changed to include only data pointing to a single BPN. \ No newline at end of file diff --git a/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-529-version-compatibility.feature b/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-529-version-compatibility.feature new file mode 100644 index 0000000000..c800449ee0 --- /dev/null +++ b/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-529-version-compatibility.feature @@ -0,0 +1,110 @@ +# +# Copyright (c) 2022,2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2021,2024 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 + + +# Tests for Aspect Version Compatibility +Feature: Integration Tests for Aspect Version Compatibility #529 + + # Notes: + # - For possible values of "direction" and "bomLifecycle" see RelationshipAspect. + # - These tests require the following test data: + # - CX_Testdata_529_compatibility_*.json + + + Background: + Given the IRS URL "http://localhost:8080" + And the admin user api key + + + # Requires test data CX_Testdata_529_compatibility_SingleLevelBomAsBuilt.json + @UMBRELLA @INTEGRATION_TEST + @TRI-2047 + Scenario: SingleLevelBomAsBuilt Version Compatibility + Given I register an IRS job for globalAssetId "urn:uuid:bec0a457-4d6b-4c1c-88f7-125d04f04d68" and BPN "BPNL00000003AYRE" + And collectAspects "true" + And depth 10 + + And direction "downward" + And bomLifecycle "asBuilt" + + And aspects : + | urn:samm:io.catenax.serial_part:1.0.1#SerialPart | + | urn:samm:io.catenax.serial_part:2.0.0#SerialPart | + | urn:samm:io.catenax.serial_part:3.0.0#SerialPart | + + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if "relationships" are equal to "529-single-level-bom-as-built-expected-relationships.json" + And I check, if "submodels" are equal to "529-single-level-bom-as-built-expected-submodels.json" + + + # Requires test data CX_Testdata_529_compatibility_SingleLevelBomAsPlanned.json + @UMBRELLA @INTEGRATION_TEST + @TRI-2048 + Scenario: SingleLevelBomAsPlanned Version Compatibility + Given I register an IRS job for globalAssetId "urn:uuid:0bc18367-69c3-428f-925d-6f8a461edefd" and BPN "BPNL00000003AYRE" + And collectAspects "true" + And depth 10 + + And direction "downward" + And bomLifecycle "asPlanned" + + And aspects : + | urn:samm:io.catenax.part_as_planned:2.0.0#PartAsPlanned | + + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if "relationships" are equal to "529-single-level-bom-as-planned-expected-relationships.json" + And I check, if "submodels" are equal to "529-single-level-bom-as-planned-expected-submodels.json" + + + # Requires test data CX_Testdata_529_compatibility_SingleLevelUsageAsBuilt.json + @UMBRELLA @INTEGRATION_TEST + @TRI-2049 + Scenario: SingleLevelUsageAsBuilt Version Compatibility + Given I register an IRS job for globalAssetId "urn:uuid:2ea93a69-7ecb-4747-94f4-960c2535dc7b" and BPN "BPNL00000003AYRE" + And collectAspects "true" + And depth 10 + + And direction "upward" + And bomLifecycle "asBuilt" + + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if "relationships" are equal to "529-single-level-usage-as-built-expected-relationships.json" + And I check, if "submodels" are equal to "529-single-level-usage-as-built-expected-submodels.json" + + + # Requires test data CX_Testdata_529_compatibility_SingleLevelUsageAsPlanned.json + @UMBRELLA @INTEGRATION_TEST + @TRI-2050 + Scenario: SingleLevelUsageAsPlanned Version Compatibility + Given I register an IRS job for globalAssetId "urn:uuid:7fe9ac70-23c4-449a-88c1-3832a1cc6da6" and BPN "BPNL00000003AYRE" + And collectAspects "true" + And depth 10 + + And direction "upward" + And bomLifecycle "asPlanned" + + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if "relationships" are equal to "529-single-level-usage-as-planned-expected-relationships.json" + And I check, if "submodels" are equal to "529-single-level-usage-as-planned-expected-submodels.json" + + diff --git a/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-aspect-models.feature b/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-aspect-models.feature new file mode 100644 index 0000000000..1aede373e2 --- /dev/null +++ b/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-aspect-models.feature @@ -0,0 +1,137 @@ +# +# Copyright (c) 2022,2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2021,2024 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 + +@TRI-1312 +Feature: IRS support for different aspect models + + Background: + Given the IRS URL "http://localhost:8080" + And the admin user api key + + + @UMBRELLA @INTEGRATION_TEST + @TRI-1537 @TRI-1941 @TRI-1942 @TRI-873 @TRI-1843 @TRI-1770 @TRI-1682 + Scenario: BomLifecycle 'asBuilt' for testing "JustInSequencePart-Model [BPNL00000003AYRE] + Given I register an IRS job for globalAssetId "urn:uuid:57be2fd7-501e-4fea-9f3b-a6c746c3579d" and BPN "BPNL00000003AYRE" + And collectAspects "true" + And depth 10 + And direction "downward" + And bomLifecycle "asBuilt" + And aspects : + | urn:samm:io.catenax.just_in_sequence_part:3.0.0#JustInSequencePart | + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if "submodels" are equal to "TRI-1537-expected-submodels.json" + + @UMBRELLA @INTEGRATION_TEST + @TRI-1598 @TRI-1941 @TRI-1843 @TRI-1942 @TRI-873 @TRI-1770 @TRI-1682 + Scenario: BomLifecycle 'asBuilt' for testing "Batch"-Model [BPNL00000003AYRE] + Given I register an IRS job for globalAssetId "urn:uuid:54d9154a-01a4-47f1-a798-57d86a5744fa" and BPN "BPNL00000003AYRE" + And collectAspects "true" + And depth 10 + And direction "downward" + And bomLifecycle "asBuilt" + And aspects : + | urn:samm:io.catenax.batch:3.0.0#Batch | + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if "relationships" are equal to "TRI-1598-expected-relationships.json" + And I check, if "submodels" are equal to "TRI-1598-expected-submodels.json" + + @UMBRELLA @INTEGRATION_TEST + @TRI-1918 @TRI-1941 @TRI-1942 @TRI-1843 @TRI-1682 @TRI-1770 @TRI-873 + Scenario: End 2 End for aspects "3.0.0#SingleLevelBomAsBuilt" + Given I register an IRS job for globalAssetId "urn:uuid:5cfb33e5-0a95-40e9-8cec-392ee6da7cf1" and BPN "BPNL00000003AYRE" + And aspects : + | urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt | + And collectAspects "true" + And depth 1 + And bomLifecycle "asBuilt" + And direction "downward" + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if number of "tombstones" equals to "summary/asyncFetchedItems/failed" + And I check, if "summary" contains 7 completed and 0 failed items + And I check, if "submodels" are equal to "TRI-1918-expected-submodels.json" + + @UMBRELLA @INTEGRATION_TEST + @TRI-1915 @TRI-1941 @TRI-1942 @TRI-1843 @TRI-1682 @TRI-1770 @TRI-873 + Scenario: End 2 End for aspects "3.0.0#SingleLevelBomAsPlanned", "2.0.0#PartAsPlanned" + Given I register an IRS job for globalAssetId "urn:uuid:e5c96ab5-896a-482c-8761-efd74777ca97" and BPN "BPNL00000003AYRE" + And aspects : + | urn:samm:io.catenax.single_level_bom_as_planned:3.0.0#SingleLevelBomAsPlanned | + | urn:samm:io.catenax.part_as_planned:2.0.0#PartAsPlanned | + And collectAspects "true" + And depth 1 + And bomLifecycle "asPlanned" + And direction "downward" + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if number of "tombstones" equals to "summary/asyncFetchedItems/failed" + And I check, if "summary" contains 3 completed and 0 failed items + And I check, if "submodels" are equal to "TRI-1915-expected-submodels.json" + + @UMBRELLA @INTEGRATION_TEST + @TRI-1914 @TRI-1941 @TRI-1942 @TRI-1843 @TRI-1770 @TRI-1682 @TRI-873 + Scenario: End 2 End for aspects "3.0.0#Batch" with "1.0.0#PartSiteInformationAsBuilt" + Given I register an IRS job for globalAssetId "urn:uuid:d78045d5-4ee7-4980-b24c-31dafeb6f54f" and BPN "BPNL00000003AYRE" + And aspects : + | urn:samm:io.catenax.batch:3.0.0#Batch | + And collectAspects "true" + And depth 1 + And bomLifecycle "asBuilt" + And direction "downward" + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if number of "tombstones" equals to "summary/asyncFetchedItems/failed" + And I check, if "summary" contains 1 completed and 0 failed items + And I check, if "submodels" are equal to "TRI-1914-expected-submodels.json" + + @UMBRELLA @INTEGRATION_TEST + @TRI-1913 @TRI-1941 @TRI-1942 @TRI-1843 @TRI-1682 @TRI-1770 @TRI-873 + Scenario: End 2 End for aspects "3.0.0#JustInSequencePart", "3.0.0#SerialPart" with "1.0.0#PartSiteInformationAsBuilt" + Given I register an IRS job for globalAssetId "urn:uuid:fc9a079f-1b55-4ccc-8649-e188f899bf39" and BPN "BPNL00000003AYRE" + And aspects : + | urn:samm:io.catenax.just_in_sequence_part:3.0.0#JustInSequencePart | + | urn:samm:io.catenax.serial_part:3.0.0#SerialPart | + And collectAspects "true" + And depth 1 + And bomLifecycle "asBuilt" + And direction "downward" + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if number of "tombstones" equals to "summary/asyncFetchedItems/failed" + And I check, if "summary" contains 1 completed and 0 failed items + And I check, if "submodels" are equal to "TRI-1913-expected-submodels.json" + + @UMBRELLA @INTEGRATION_TEST + @TRI-528 @TRI-1941 @TRI-1942 @TRI-873 @TRI-1843 @TRI-1770 @TRI-1682 + Scenario: End 2 End for aspect "MaterialForRecycling" + Given I register an IRS job for globalAssetId "urn:uuid:4b4d41c3-7a7c-4544-b718-8167a70f517d" and BPN "BPNL00000003AYRE" + And aspects : + | urn:samm:io.catenax.material_for_recycling:1.1.0#MaterialForRecycling | + And collectAspects "true" + And depth 1 + And direction "downward" + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if number of "tombstones" equals to "summary/asyncFetchedItems/failed" + And I check, if "summary" contains 4 completed and 0 failed items + And I check, if "relationships" are equal to "TRI-528-expected-relationships.json" + And I check, if "submodels" are equal to "TRI-528-expected-submodels.json" \ No newline at end of file diff --git a/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-batch-processing.feature b/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-batch-processing.feature new file mode 100644 index 0000000000..ef8d174022 --- /dev/null +++ b/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-batch-processing.feature @@ -0,0 +1,84 @@ +# +# Copyright (c) 2022,2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2021,2024 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 + +@TRI-1018 +Feature: IRS Batch Processing + + Background: + Given the IRS URL "http://localhost:8080" + And the admin user api key + + + @UMBRELLA @INTEGRATION_TEST + @TRI-1267 @TRI-1941 @TRI-1942 @TRI-873 @TRI-1843 @TRI-1770 + Scenario: Check correct job executions of batch processing (SingleLevelBomAsBuilt/SerialPart 3.0.0) + Given I register an IRS batch job for globalAssetIds and BPNs: + | globalAssetId | bpn | + | urn:uuid:771d2ccc-a081-4d3a-bcb2-46c6a0a33743 | BPNS00000008BDFH | + | urn:uuid:3db730be-9de5-4db5-a58d-684de36484e7 | BPNS00000008BDFH | + | urn:uuid:73173bf5-08df-4898-9d6d-8899015c161e | BPNS00000008BDFH | + | urn:uuid:07e0997f-4212-4456-8f27-164b30fc8355 | BPNS00000008BDFH | + | urn:uuid:88f51be1-3771-4335-8b5c-4c5050123127 | BPNS00000008BDFH | + | urn:uuid:d3c0bf85-d44f-47c5-990d-fec8a36065c6 | BPNS00000008BDFH | + | urn:uuid:51ff7c73-34e9-45d4-816c-d92578843e68 | BPNS00000008BDFH | + | urn:uuid:b21cfd5b-dcf4-46fa-9227-3eb693567dd8 | BPNS00000008BDFH | + | urn:uuid:8f9d8c7f-6d7a-48f1-9959-9fa3a1a7a891 | BPNS00000008BDFH | + | urn:uuid:ceb6b964-5779-49c1-b5e9-0ee70528fcbd | BPNS00000008BDFH | + | urn:uuid:a4a26b9c-9460-4cc5-8645-85916b86adb0 | BPNS00000008BDFH | + | urn:uuid:7b87f5d6-f75e-40f1-a439-779ae9f57a21 | BPNS00000008BDFH | + | urn:uuid:8914a66e-b59b-405f-afff-b97d71ebece3 | BPNS00000008BDFH | + | urn:uuid:a1082992-cc3b-4da1-af6b-aa692ed71461 | BPNS00000008BDFH | + | urn:uuid:0ea1aa79-10d4-4df1-8a5a-5b7eafd26163 | BPNS00000008BDFH | + | urn:uuid:1e35e091-3d3d-421e-9c7e-14cf1c9442a6 | BPNS00000008BDFH | + | urn:uuid:cc8e9448-b294-46e7-8110-337e8bfa3001 | BPNS00000008BDFH | + | urn:uuid:fa5804f1-8d4e-437c-aca2-a5491be61758 | BPNS00000008BDFH | + | urn:uuid:a0f6803c-e4dc-4cda-8ad2-91cc57868449 | BPNS00000008BDFH | + | urn:uuid:492781f5-62ff-4fb2-876c-3498e2844d13 | BPNS00000008BDFH | + | urn:uuid:d6142601-5e09-45fe-9b42-e53cf8cd458c | BPNS00000008BDFH | + And collectAspects "true" + And depth 1 + And direction "downward" + And bomLifecycle "asBuilt" + And batchStrategy "PRESERVE_BATCH_JOB_ORDER" + And batchSize 10 + And callbackUrl "https://www.check123.com" + And aspects : + | urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt | + | urn:samm:io.catenax.serial_part:3.0.0#SerialPart | + + When I get the order-id + Then I check, if the order contains 3 batches + And I check, if batch 3 contains 1 job + + When I get the batch-id of "first" batch + Then I check, if the batch contains 10 jobs + And I check, if the batchNumber is 1 + And batchTotal is 3 + And totalJobs is 21 + And jobsInBatchChecksum is 10 + + When I get the "first" job-id from batch + Then I check, if job parameter are set with aspects: + | urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt | + | urn:samm:io.catenax.serial_part:3.0.0#SerialPart | + And collectAspects is "true" + And depth is 1 + And direction is "downward" + And bomLifecycle is "asBuilt" + And callbackUrl is "https://www.check123.com" diff --git a/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-lifecycle-as-built.feature b/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-lifecycle-as-built.feature new file mode 100644 index 0000000000..944c5e48ef --- /dev/null +++ b/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-lifecycle-as-built.feature @@ -0,0 +1,101 @@ +# +# Copyright (c) 2022,2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2021,2024 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 + +@TRI-982 +Feature: SingleLevelUsageAsBuilt + + Background: + Given the IRS URL "http://localhost:8080" + And the admin user api key + + + @UMBRELLA @INTEGRATION_TEST + @TRI-1009 @TRI-1941 @TRI-1942 @TRI-873 @TRI-1843 @TRI-1770 @TRI-1682 + Scenario: End 2 End for upward direction and SingleLevelUsageAsBuilt + Given I register an IRS job for globalAssetId "urn:uuid:97eb9ea6-7e66-4ad8-aefe-6ed8aa78ccce" and BPN "BPNL00000003AYRE" + And direction "upward" + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if "summary" contains 2 completed and 0 failed items + And I check, if "relationships" are equal to "TRI-1009-expected-relationships.json" + + @UMBRELLA @INTEGRATION_TEST + @TRI-2035 @TRI-1942 @TRI-1843 @TRI-1682 @TRI-1770 @TRI-1941 @TRI-873 + Scenario: Tombstone for not found GlobalAssetId + Given I register an IRS job for globalAssetId "urn:uuid:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" and BPN "BPNL00000003AYRE" + And depth 1 + And direction "downward" + And bomLifecycle "asBuilt" + When I get the job-id + Then I check, if the job has status "COMPLETED" within 2 minutes + And I check, if "tombstones" are equal to "TRI-2035-expected-tombstones.json" + + @UMBRELLA @INTEGRATION_TEST + @TRI-1647 @TRI-1941 @TRI-1942 @TRI-873 @TRI-1843 @TRI-1770 @TRI-1682 + Scenario: End 2 End for aspect "TractionBatteryCode" + Given I register an IRS job for globalAssetId "urn:uuid:8f5a73b3-766e-47c7-8780-4760a22329af" and BPN "BPNL00000003AYRE" + And collectAspects "true" + And depth 2 + And direction "downward" + And bomLifecycle "asBuilt" + And aspects : + | urn:samm:io.catenax.traction_battery_code:1.0.0#TractionBatteryCode | + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if "submodels" are equal to "TRI-1647-expected-submodels.json" + + @UMBRELLA @INTEGRATION_TEST + @TRI-767 @TRI-1941 @TRI-1942 @TRI-873 @TRI-1843 @TRI-1770 @TRI-1682 + Scenario: End 2 End for OEM-B (MB) [BPN:BPNL00000003AYRE] (SerialPart 3.0.0, SingleLevelBomAsBuilt 3.0.0 , Batch 3.0.0) + Given I register an IRS job for globalAssetId "urn:uuid:4509ea7c-c8d2-41a1-83ca-c214ee34af6c" and BPN "BPNL00000003AYRE" + And collectAspects "true" + And depth 100 + And direction "downward" + And aspects : + | urn:samm:io.catenax.serial_part:3.0.0#SerialPart | + | urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt | + | urn:samm:io.catenax.just_in_sequence_part:3.0.0#JustInSequencePart | + | urn:samm:io.catenax.batch:3.0.0#Batch | + When I get the job-id + Then I check, if the job has status "COMPLETED" within 30 minutes + And I check, if number of "tombstones" equals to "summary/asyncFetchedItems/failed" + And I check, if "summary" contains 175 completed and 1 failed items + And I check, if "relationships" are equal to "TRI-767-expected-relationships.json" + And I check, if "submodels" are equal to "TRI-767-expected-submodels.json" + And I check, if submodels contains BPNL number "BPNL00000003AYRE" exactly 248 times + + @UMBRELLA @INTEGRATION_TEST + @TRI-704 @TRI-1941 @TRI-1942 @TRI-873 @TRI-1843 @TRI-1770 @TRI-1682 + Scenario: End 2 End for Tier A (ZF) [BPN:BPNL00000003AYRE] (SerialPart 3.0.0, SingleLevelBomAsBuilt 3.0.0 , Batch 3.0.0) + Given I register an IRS job for globalAssetId "urn:uuid:aeada37a-a1d8-4535-a476-5f5e1142e3fe" and BPN "BPNL00000003AYRE" + And aspects : + | urn:samm:io.catenax.serial_part:3.0.0#SerialPart | + | urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt | + | urn:samm:io.catenax.batch:3.0.0#Batch | + | urn:samm:io.catenax.material_for_recycling:1.1.0#MaterialForRecycling | + And collectAspects "true" + And depth 100 + And direction "downward" + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if number of "tombstones" equals to "summary/asyncFetchedItems/failed" + And I check, if "summary" contains 5 completed and 0 failed items + And I check, if "relationships" are equal to "TRI-704-expected-relationships.json" + And I check, if "submodels" are equal to "TRI-704-expected-submodels.json" + And I check, if submodels contains BPNL number "BPNL00000003AYRE" exactly 7 times \ No newline at end of file diff --git a/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-lifecycle-as-planned.feature b/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-lifecycle-as-planned.feature new file mode 100644 index 0000000000..4bef60e658 --- /dev/null +++ b/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-lifecycle-as-planned.feature @@ -0,0 +1,71 @@ +# +# Copyright (c) 2022,2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2021,2024 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 + +@TRI-512 +Feature: BomLifecycle 'asPlanned' implementation + + Background: + Given the IRS URL "http://localhost:8080" + And the admin user api key + + + @UMBRELLA @INTEGRATION_TEST + @TRI-893 @TRI-1941 @TRI-1942 @TRI-873 @TRI-1843 @TRI-1770 + Scenario: End 2 End for BomLifecycle 'asPlanned' Vehicle Model C for SAP [BPNL00000003AYRE] + Given I register an IRS job for globalAssetId "urn:uuid:65e1554e-e5cd-4560-bac1-1352582122fb" and BPN "BPNL00000003AYRE" + And collectAspects "true" + And depth 10 + And direction "downward" + And bomLifecycle "asPlanned" + And aspects : + | urn:samm:io.catenax.part_as_planned:2.0.0#PartAsPlanned | + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if "relationships" are equal to "TRI-893-expected-relationships.json" + And I check, if "submodels" are equal to "TRI-893-expected-submodels.json" + + @UMBRELLA @INTEGRATION_TEST + @TRI-891 @TRI-1941 @TRI-1942 @TRI-873 @TRI-1843 @TRI-1770 + Scenario: End 2 End for BomLifecycle 'asPlanned' Vehicle Model B for MercedesBenz [BPNL00000003AYRE] + Given I register an IRS job for globalAssetId "urn:uuid:68904173-ad59-4a77-8412-3e73fcafbd8b" and BPN "BPNL00000003AYRE" + And collectAspects "true" + And depth 10 + And direction "downward" + And bomLifecycle "asPlanned" + And aspects : + | urn:samm:io.catenax.part_as_planned:2.0.0#PartAsPlanned | + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if "relationships" are equal to "TRI-891-expected-relationships.json" + And I check, if "submodels" are equal to "TRI-891-expected-submodels.json" + + @UMBRELLA @INTEGRATION_TEST + @TRI-821 @TRI-1941 @TRI-1942 @TRI-873 @TRI-1843 @TRI-1770 + Scenario: End 2 End for BomLifecycle 'asPlanned' Vehicle Model A for BMW [BPNL00000003AYRE] + Given I register an IRS job for globalAssetId "urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e" and BPN "BPNL00000003AYRE" + And collectAspects "true" + And depth 10 + And direction "downward" + And bomLifecycle "asPlanned" + And aspects : + | urn:samm:io.catenax.part_as_planned:2.0.0#PartAsPlanned | + When I get the job-id + Then I check, if the job has status "COMPLETED" within 20 minutes + And I check, if "relationships" are equal to "TRI-821-expected-relationships.json" + And I check, if "submodels" are equal to "TRI-821-expected-submodels.json" \ No newline at end of file diff --git a/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-policy-store.feature b/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-policy-store.feature new file mode 100644 index 0000000000..987acf1817 --- /dev/null +++ b/irs-cucumber-tests/src/test/resources/org/eclipse/tractusx/irs/cucumber/features/irs-helm-policy-store.feature @@ -0,0 +1,476 @@ +# +# Copyright (c) 2022,2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2021,2024 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 + +Feature: IRS Policy Store + + Background: + Given the IRS URL "http://localhost:8080" -- policystore + And the admin user api key -- policystore + + @UMBRELLA @INTEGRATION_TEST + @POLICY_STORE_API + @TRI-2005 @TRI-1843 @TRI-1941 @TRI-873 + Scenario: Policy Store API: Delete policy for BPN + # cleanup + Given no policies with prefix "aaaaaaaa-aaaa-aaaa-aaaa-" exist + + # set up testdata + Given a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" is registered for BPN "BPNL1234567890AB" and validUntil "4444-11-11T11:11:11.111Z" + Given I add policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" to given BPNs using validUntil "3333-11-11T11:11:11.111Z": + | BPNL1234567890AB | + | BPNL1234567890EF | + Given a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" is registered for BPN "BPNL1234567890AB" and validUntil "3333-11-11T11:11:11.111Z" + Given I add policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" to given BPNs using validUntil "3333-11-11T11:11:11.111Z": + | BPNL1234567890AB | + | BPNL1234567890CD | + Given a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-555555555555" is registered for BPN "BPNL1234567890CD" and validUntil "4444-11-11T11:11:11.111Z" + Given a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-666666666666" is registered for BPN "BPNL1234567890CD" and validUntil "4444-11-11T11:11:11.111Z" + + # check the testdata preconditions + When I successfully fetch all policies + Then the BPNs should be associated with policies as follows: + | BPN | policyId | + | BPNL1234567890AB | aaaaaaaa-aaaa-aaaa-aaaa-333333333333 | + | BPNL1234567890EF | aaaaaaaa-aaaa-aaaa-aaaa-333333333333 | + | BPNL1234567890AB | aaaaaaaa-aaaa-aaaa-aaaa-444444444444 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-444444444444 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-555555555555 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-666666666666 | + + # act and assert + When I remove the policy "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" from BPN "BPNL1234567890AB" + Then the delete policy response should have HTTP status 200 + When I successfully fetch all policies + Then the BPN "BPNL1234567890AB" should have 1 policies having policyId starting with "aaaaaaaa-aaaa-aaaa-aaaa-" + And the BPNs should be associated with policies as follows: + | BPN | policyId | + | BPNL1234567890EF | aaaaaaaa-aaaa-aaaa-aaaa-333333333333 | + | BPNL1234567890AB | aaaaaaaa-aaaa-aaaa-aaaa-444444444444 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-444444444444 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-555555555555 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-666666666666 | + + @UMBRELLA @INTEGRATION_TEST + @POLICY_STORE_API + @TRI-2004 @TRI-1843 @TRI-1941 @TRI-873 + Scenario: Policy Store API: Trying to register a policy without payload should fail (bad case) + # cleanup + Given no policies with prefix "aaaaaaaa-aaaa-aaaa-aaaa-" exist + + # act and assert + When a policy WITHOUT payload is registered for BPN "BPNL1234567890AB" and validUntil "3333-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 400 + And the create policy response should have message containing "payload" + + When a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-111111111111" WITH EMPTY definition is registered for BPN "BPNL1234567890AB" and validUntil "3333-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 400 + And the create policy response should have message containing "does not contain all required fields" + + @UMBRELLA @INTEGRATION_TEST + @POLICY_STORE_API + @TRI-1996 @TRI-1843 @TRI-1941 @TRI-873 + Scenario: Policy Store API: Try to update policy with invalid policyId (bad case) + # cleanup + Given no policies with prefix "aaaaaaaa-aaaa-aaaa-aaaa-" exist + + # act and assert + When I update policy "#INVALID-POLICY-ID#", BPN "BPNL1234567890AB", validUntil "3334-11-11T11:11:11.111Z" + Then the update policy response should have HTTP status 400 + And the update policy response should have message containing "must only contain safe URL path variable characters" + + @UMBRELLA @INTEGRATION_TEST + @POLICY_STORE_API + @TRI-1995 @TRI-1843 @TRI-1941 @TRI-873 + Scenario: Policy Store API: Try to delete policy with invalid policyId (bad case) + # cleanup + Given no policies with prefix "aaaaaaaa-aaaa-aaaa-aaaa-" exist + + # act and assert + When I delete the policy "#INVALID-POLICY-ID#" + Then the delete policy response should have HTTP status 400 + + @UMBRELLA @INTEGRATION_TEST + @POLICY_STORE_API + @TRI-1993 @TRI-1843 @TRI-1941 @TRI-873 + Scenario: Policy Store API: Registering a duplicate policy for same BPNL fails (bad case) + # cleanup + Given no policies with prefix "aaaaaaaa-aaaa-aaaa-aaaa-" exist + + # act and assert + When a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-111111111111" is registered for BPN "BPNL1234567890AB" and validUntil "3333-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 201 + When a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-111111111111" is registered for BPN "BPNL1234567890AB" and validUntil "3333-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 400 + And the create policy response should have message containing "already exists" + + @UMBRELLA @INTEGRATION_TEST + @POLICY_STORE_API + @TRI-1988 @TRI-1843 @TRI-1941 @TRI-873 + Scenario: Policy Store API: Try to register policy with invalid policyId (bad case) + # cleanup + Given no policies with prefix "aaaaaaaa-aaaa-aaaa-aaaa-" exist + + # act and assert + When a policy with policyId "#INVALID-POLICY-ID#" is registered for BPN "BPNL1234567890AB" and validUntil "3333-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 400 + + @UMBRELLA @INTEGRATION_TEST + @POLICY_STORE_API + @TRI-1984 @TRI-1843 @TRI-1941 @TRI-873 + Scenario: Policy Store API: Updating policy for invalid BPNL (bad case) + # cleanup + Given no policies with prefix "aaaaaaaa-aaaa-aaaa-aaaa-" exist + Given a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" is registered for BPN "BPNL1234567890AB" and validUntil "3333-11-11T11:11:11.111Z" + + # act and assert + When I update policy "aaaaaaaa-aaaa-aaaa-aaaa-333333333333", BPN "BPNA1234567890AB", validUntil "3333-11-11T11:11:11.111Z" + Then the update policy response should have HTTP status 400 + + When I update policy "aaaaaaaa-aaaa-aaaa-aaaa-333333333333", BPN "BPNS1234567890AB", validUntil "3333-11-11T11:11:11.111Z" + Then the update policy response should have HTTP status 400 + + When I update policy "aaaaaaaa-aaaa-aaaa-aaaa-333333333333", BPN "BPNACB", validUntil "3333-11-11T11:11:11.111Z" + Then the update policy response should have HTTP status 400 + + When I update policy "aaaaaaaa-aaaa-aaaa-aaaa-333333333333", BPN "ERRRES", validUntil "3333-11-11T11:11:11.111Z" + Then the update policy response should have HTTP status 400 + + When I update policy "aaaaaaaa-aaaa-aaaa-aaaa-333333333333", BPN "DELETE * FROM Table", validUntil "3333-11-11T11:11:11.111Z" + Then the update policy response should have HTTP status 400 + + @UMBRELLA @INTEGRATION_TEST + @POLICY_STORE_API + @TRI-1981 @TRI-1843 @TRI-1941 @TRI-873 + Scenario: Policy Store API: Registering policy for invalid BPNL (bad case) + # cleanup + Given no policies with prefix "aaaaaaaa-aaaa-aaaa-aaaa-" exist + + # act and assert + When a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" is registered for BPN "BPNA1234567890AB" and validUntil "3333-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 400 + + When a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" is registered for BPN "BPNS1234567890AB" and validUntil "3333-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 400 + + When a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" is registered for BPN "BPNACB" and validUntil "3333-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 400 + + When a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" is registered for BPN "ERRRES" and validUntil "3333-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 400 + + When a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" is registered for BPN "DELETE * FROM Table" and validUntil "3333-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 400 + + @UMBRELLA @INTEGRATION_TEST + @POLICY_STORE_API + @TRI-1966 @TRI-1843 @TRI-1941 @TRI-873 + Scenario: Policy Store API: Fetching policies by BPNLs should fail for invalid BPNLs (bad case) + # cleanup + Given no policies with prefix "aaaaaaaa-aaaa-aaaa-aaaa-" exist + + # test data setup + Given a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" is registered for BPN "BPNL1234567890AB" and validUntil "3333-11-11T11:11:11.111Z" + Given a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" is registered for BPN "BPNL1234567890CD" and validUntil "4444-11-11T11:11:11.111Z" + Given a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-555555555555" is registered for BPN "BPNL1234567890EF" and validUntil "5555-11-11T11:11:11.111Z" + + # act + When I fetch policies for BPNs: + | BPNL1234567890AB | + | BPNL1234567890CD | + Then the fetch policies for BPN response should have HTTP status 200 + + When I fetch policies for BPNs: + | BPNL1234567890CD | + | INVALID | + Then the fetch policies for BPN response should have HTTP status 400 + + When I fetch policies for BPNs: + | BPNACB | + Then the fetch policies for BPN response should have HTTP status 400 + + When I fetch policies for BPNs: + | ERRRES | + Then the fetch policies for BPN response should have HTTP status 400 + + When I fetch policies for BPNs: + | DELETE * FROM Table | + Then the fetch policies for BPN response should have HTTP status 400 + + @UMBRELLA @INTEGRATION_TEST + @POLICY_STORE_API + @TRI-1965 @TRI-1843 @TRI-1941 @TRI-873 + Scenario: Policy Store API: Register policy without validUntil (bad case) + # cleanup + Given no policies with prefix "aaaaaaaa-aaaa-aaaa-aaaa-" exist + + # act + Given I want to register a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" + And the policy should be associated to BPN "BPNL1234567890AB" + And the policy should have no validUntil + When I register the policy + + # assert + Then the create policy response should have HTTP status 400 + + @UMBRELLA @INTEGRATION_TEST + @POLICY_STORE_API + @TRI-1955 @TRI-1843 @TRI-1941 @TRI-873 + Scenario: Policy Store API: Delete some policies + # cleanup + Given no policies with prefix "aaaaaaaa-aaaa-aaaa-aaaa-" exist + + # set up testdata + Given a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" is registered for BPN "BPNL1234567890AB" and validUntil "4444-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 201 and policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" + + Given I add policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" to given BPNs using validUntil "3333-11-11T11:11:11.111Z": + | BPNL1234567890AB | + | BPNL1234567890EF | + Then the update policy response should have HTTP status 200 + + Given a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" is registered for BPN "BPNL1234567890AB" and validUntil "3333-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 201 and policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" + + Given I add policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" to given BPNs using validUntil "3333-11-11T11:11:11.111Z": + | BPNL1234567890AB | + | BPNL1234567890CD | + Then the update policy response should have HTTP status 200 + + Given a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-555555555555" is registered for BPN "BPNL1234567890CD" and validUntil "4444-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 201 and policyId "aaaaaaaa-aaaa-aaaa-aaaa-555555555555" + + Given a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-666666666666" is registered for BPN "BPNL1234567890CD" and validUntil "4444-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 201 and policyId "aaaaaaaa-aaaa-aaaa-aaaa-666666666666" + + # check the testdata preconditions + When I successfully fetch all policies + Then the BPNs should be associated with policies as follows: + | BPN | policyId | + | BPNL1234567890AB | aaaaaaaa-aaaa-aaaa-aaaa-333333333333 | + | BPNL1234567890EF | aaaaaaaa-aaaa-aaaa-aaaa-333333333333 | + | BPNL1234567890AB | aaaaaaaa-aaaa-aaaa-aaaa-444444444444 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-444444444444 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-555555555555 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-666666666666 | + + # act and assert + When I delete the policy "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" + Then the delete policy response should have HTTP status 200 + + When I delete the policy "aaaaaaaa-aaaa-aaaa-aaaa-555555555555" + Then the delete policy response should have HTTP status 200 + + When I delete the policy "aaaaaaaa-aaaa-aaaa-aaaa-666666666666" + Then the delete policy response should have HTTP status 200 + + When I successfully fetch all policies + Then the BPN "BPNL1234567890CD" should have 0 policies having policyId starting with "aaaaaaaa-aaaa-aaaa-aaaa-" + And the BPNs should be associated with policies as follows: + | BPN | policyId | + | BPNL1234567890AB | aaaaaaaa-aaaa-aaaa-aaaa-333333333333 | + | BPNL1234567890EF | aaaaaaaa-aaaa-aaaa-aaaa-333333333333 | + + @UMBRELLA @INTEGRATION_TEST + @POLICY_STORE_API + @TRI-1954 @TRI-1843 @TRI-1941 @TRI-873 + Scenario: Policy Store API: Add policyId to given BPNs + # cleanup + Given no policies with prefix "aaaaaaaa-aaaa-aaaa-aaaa-" exist + + # set up testdata + Given a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" is registered for BPN "BPNL1234567890AB" and validUntil "3333-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 201 and policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" + + # check the testdata preconditions + When I successfully fetch all policies + Then the BPN "BPNL1234567890AB" should have the following policies: + | aaaaaaaa-aaaa-aaaa-aaaa-333333333333 | + And the BPN "BPNL1234567890CD" should have 0 policies having policyId starting with "aaaaaaaa-aaaa-aaaa-aaaa-" + + # act and assert + When I want to update the policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" + And the policy should be associated to the following BPNs: + | BPNL1234567890AB | + | BPNL1234567890CD | + And the policy should have validUntil "3334-11-11T11:11:11.111Z" + And I update the policy + Then the update policy response should have HTTP status 200 + + When I successfully fetch all policies + Then the BPNs should be associated with policies as follows: + | BPN | policyId | + | BPNL1234567890AB | aaaaaaaa-aaaa-aaaa-aaaa-333333333333 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-333333333333 | + + @UMBRELLA @INTEGRATION_TEST + @POLICY_STORE_API + @TRI-1953 @TRI-1843 @TRI-1941 @TRI-873 + Scenario: Policy Store API: Add BPN to policy + # cleanup + Given no policies with prefix "aaaaaaaa-aaaa-aaaa-aaaa-" exist + + # set up testdata + Given a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-33333333333" is registered for BPN "BPNL1234567890AB" and validUntil "3333-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 201 and policyId "aaaaaaaa-aaaa-aaaa-aaaa-33333333333" + + Given a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" is registered for BPN "BPNL1234567890CD" and validUntil "4444-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 201 and policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" + + # act and assert + When I update policy "aaaaaaaa-aaaa-aaaa-aaaa-33333333333", BPN "BPNL1234567890CD", validUntil "3334-11-11T11:11:11.111Z" + Then the update policy response should have HTTP status 200 + + When I successfully fetch all policies + Then the BPN "BPNL1234567890CD" should have a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" and validUntil "4444-11-11T11:11:11.111Z" + And the BPN "BPNL1234567890CD" should have a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-33333333333" and validUntil "3334-11-11T11:11:11.111Z" + And the BPN "BPNL1234567890AB" should have 0 policies having policyId starting with "aaaaaaaa-aaaa-aaaa-aaaa-" + + @UMBRELLA @INTEGRATION_TEST + @POLICY_STORE_API + @TRI-1952 @TRI-1843 @TRI-1941 @TRI-873 + Scenario: Policy Store API: Update a policy validUntil date for a policy that is associated to multiple BPNs + # cleanup + Given no policies with prefix "aaaaaaaa-aaaa-aaaa-aaaa-" exist + + # set up testdata + Given I want to register a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-33333333333" + And the policy should be associated to BPN "BPNL1234567890AB" + And the policy should have validUntil "3333-11-11T11:11:11.111Z" + When I register the policy + Then the create policy response should have HTTP status 201 and policyId "aaaaaaaa-aaaa-aaaa-aaaa-33333333333" + + Given I want to register a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" + And the policy should be associated to BPN "BPNL1234567890AB" + And the policy should have validUntil "4444-11-11T11:11:11.111Z" + And the policy should be associated to the following BPNs: + | BPNL1234567890AB | + | BPNL1234567890CD | + When I register the policy + Then the create policy response should have HTTP status 201 and policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" + + When a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-555555555555" is registered for BPN "BPNL1234567890CD" and validUntil "5555-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 201 and policyId "aaaaaaaa-aaaa-aaaa-aaaa-555555555555" + + When a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-666666666666" is registered for BPN "BPNL1234567890CD" and validUntil "6666-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 201 and policyId "aaaaaaaa-aaaa-aaaa-aaaa-666666666666" + + # check the testdata preconditions + When I successfully fetch all policies + Then the BPN "BPNL1234567890AB" should have a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-33333333333" and validUntil "3333-11-11T11:11:11.111Z" + And the BPN "BPNL1234567890AB" should have a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" and validUntil "4444-11-11T11:11:11.111Z" + And the BPN "BPNL1234567890CD" should have a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" and validUntil "4444-11-11T11:11:11.111Z" + And the BPN "BPNL1234567890CD" should have a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-555555555555" and validUntil "5555-11-11T11:11:11.111Z" + And the BPN "BPNL1234567890CD" should have a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-666666666666" and validUntil "6666-11-11T11:11:11.111Z" + + # act + When I update policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" and given BPNs using validUntil "2223-11-11T11:11:11.111Z": + | BPNL1234567890AB | + | BPNL1234567890CD | + Then the update policy response should have HTTP status 200 + + # assert + When I successfully fetch all policies + Then the BPN "BPNL1234567890AB" should have a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-33333333333" and validUntil "3333-11-11T11:11:11.111Z" + And the BPN "BPNL1234567890AB" should have a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" and validUntil "2223-11-11T11:11:11.111Z" + And the BPN "BPNL1234567890CD" should have a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" and validUntil "2223-11-11T11:11:11.111Z" + And the BPN "BPNL1234567890CD" should have a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-555555555555" and validUntil "5555-11-11T11:11:11.111Z" + And the BPN "BPNL1234567890CD" should have a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-666666666666" and validUntil "6666-11-11T11:11:11.111Z" + + @UMBRELLA @INTEGRATION_TEST + @POLICY_STORE_API + @TRI-1951 @TRI-1843 @TRI-1941 @TRI-873 + Scenario: Policy Store API: Update a policy validUntil date + # cleanup + Given no policies with prefix "aaaaaaaa-aaaa-aaaa-aaaa-" exist + + # set up testdata + Given a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-33333333333" is registered for BPN "BPNL1234567890AB" and validUntil "3333-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 201 and policyId "aaaaaaaa-aaaa-aaaa-aaaa-33333333333" + + # act and assert + When I update policy "aaaaaaaa-aaaa-aaaa-aaaa-33333333333", BPN "BPNL1234567890AB", validUntil "3334-11-11T11:11:11.111Z" + Then the update policy response should have HTTP status 200 + When I successfully fetch all policies + Then the BPN "BPNL1234567890AB" should have a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-33333333333" and validUntil "3334-11-11T11:11:11.111Z" + + @UMBRELLA @INTEGRATION_TEST + @POLICY_STORE_API + @TRI-1950 @TRI-1843 @TRI-1941 @TRI-873 + Scenario: Policy Store API: Register policies + # cleanup + Given no policies with prefix "aaaaaaaa-aaaa-aaaa-aaaa-" exist + + # act and assert + Given I want to register a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" + And the policy should be associated to BPN "BPNL1234567890AB" + And the policy should have validUntil "3333-11-11T11:11:11.111Z" + When I register the policy + Then the create policy response should have HTTP status 201 and policyId "aaaaaaaa-aaaa-aaaa-aaaa-333333333333" + + Given I want to register a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" + And the policy should be associated to the following BPNs: + | BPNL1234567890AB | + | BPNL1234567890CD | + And the policy should have validUntil "4444-11-11T11:11:11.111Z" + When I register the policy + Then the create policy response should have HTTP status 201 and policyId "aaaaaaaa-aaaa-aaaa-aaaa-444444444444" + + When a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-555555555555" is registered for BPN "BPNL1234567890CD" and validUntil "5555-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 201 and policyId "aaaaaaaa-aaaa-aaaa-aaaa-555555555555" + + When a policy with policyId "aaaaaaaa-aaaa-aaaa-aaaa-666666666666" is registered for BPN "BPNL1234567890CD" and validUntil "6666-11-11T11:11:11.111Z" + Then the create policy response should have HTTP status 201 and policyId "aaaaaaaa-aaaa-aaaa-aaaa-666666666666" + + When I successfully fetch all policies + Then the BPNs should be associated with policies as follows: + | BPN | policyId | + | BPNL1234567890AB | aaaaaaaa-aaaa-aaaa-aaaa-333333333333 | + | BPNL1234567890AB | aaaaaaaa-aaaa-aaaa-aaaa-444444444444 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-444444444444 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-555555555555 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-666666666666 | + + When I fetch policies for BPNs: + | BPNL1234567890AB | + Then the fetch policies for BPN response should have HTTP status 200 + And the BPNs should be associated with policies as follows: + | BPN | policyId | + | BPNL1234567890AB | aaaaaaaa-aaaa-aaaa-aaaa-333333333333 | + | BPNL1234567890AB | aaaaaaaa-aaaa-aaaa-aaaa-444444444444 | + + When I fetch policies for BPNs: + | BPNL1234567890CD | + Then the fetch policies for BPN response should have HTTP status 200 + And the BPNs should be associated with policies as follows: + | BPN | policyId | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-444444444444 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-555555555555 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-666666666666 | + + When I fetch policies for BPNs: + | BPNL1234567890AB | + | BPNL1234567890CD | + Then the fetch policies for BPN response should have HTTP status 200 + And the BPNs should be associated with policies as follows: + | BPN | policyId | + | BPNL1234567890AB | aaaaaaaa-aaaa-aaaa-aaaa-333333333333 | + | BPNL1234567890AB | aaaaaaaa-aaaa-aaaa-aaaa-444444444444 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-444444444444 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-555555555555 | + | BPNL1234567890CD | aaaaaaaa-aaaa-aaaa-aaaa-666666666666 | \ No newline at end of file diff --git a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientImpl.java b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientImpl.java index acb0039045..72576c0307 100644 --- a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientImpl.java +++ b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientImpl.java @@ -25,6 +25,7 @@ import static org.eclipse.tractusx.irs.edc.client.cache.endpointdatareference.EndpointDataReferenceStatus.TokenStatus; import static org.eclipse.tractusx.irs.edc.client.configuration.JsonLdConfiguration.NAMESPACE_EDC_ID; +import static org.eclipse.tractusx.irs.edc.client.util.UrlValidator.isValidUrl; import java.net.URI; import java.util.ArrayList; @@ -38,7 +39,6 @@ import io.github.resilience4j.retry.RetryRegistry; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.validator.routines.UrlValidator; import org.eclipse.edc.spi.types.domain.edr.EndpointDataReference; import org.eclipse.tractusx.irs.edc.client.cache.endpointdatareference.EndpointDataReferenceCacheService; import org.eclipse.tractusx.irs.edc.client.cache.endpointdatareference.EndpointDataReferenceStatus; @@ -82,7 +82,6 @@ public class EdcSubmodelClientImpl implements EdcSubmodelClient { private final RetryRegistry retryRegistry; private final EDCCatalogFacade catalogFacade; private final EndpointDataReferenceCacheService endpointDataReferenceCacheService; - private final UrlValidator urlValidator = new UrlValidator(UrlValidator.ALLOW_LOCAL_URLS); private static void stopWatchOnEdcTask(final StopWatch stopWatch) { stopWatch.stop(); @@ -381,7 +380,7 @@ private String appendSuffix(final String endpointAddress, final String providerS "PMD.AvoidCatchingGenericException" }) private T execute(final String endpointAddress, final CheckedSupplier supplier) throws EdcClientException { - if (!urlValidator.isValid(endpointAddress)) { + if (!isValidUrl(endpointAddress)) { throw new IllegalArgumentException(String.format("Malformed endpoint address '%s'", endpointAddress)); } final String host = URI.create(endpointAddress).getHost(); diff --git a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/util/UrlValidator.java b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/util/UrlValidator.java new file mode 100644 index 0000000000..ed226a57bd --- /dev/null +++ b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/util/UrlValidator.java @@ -0,0 +1,46 @@ +/******************************************************************************** + * Copyright (c) 2022,2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + * Copyright (c) 2021,2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ********************************************************************************/ +package org.eclipse.tractusx.irs.edc.client.util; + +import java.net.MalformedURLException; +import java.net.URL; + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +/** + * Url Validator since apache commons validator is too strict. + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class UrlValidator { + + /** + * @param url the url to be checked + * @return true if the url is valid + */ + public static boolean isValidUrl(final String url) { + try { + new URL(url); + return true; + } catch (MalformedURLException e) { + return false; + } + } +} diff --git a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/util/UrlValidatorTest.java b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/util/UrlValidatorTest.java new file mode 100644 index 0000000000..ab82a2d943 --- /dev/null +++ b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/util/UrlValidatorTest.java @@ -0,0 +1,49 @@ +/******************************************************************************** + * Copyright (c) 2022,2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + * Copyright (c) 2021,2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ********************************************************************************/ +package org.eclipse.tractusx.irs.edc.client.util; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; + +class UrlValidatorTest { + + @ParameterizedTest + @ValueSource(strings = { "http://www.irs.com", + "https://www.provider.com", + "http://www.edc.test1", + "http://provider.edc/path?param=test¶m2=something", + "http://irs.tx.test", + "http://localhost:8080" + }) + void shouldValidateCorrectUrls(final String url) { + assertThat(UrlValidator.isValidUrl(url)).isTrue(); + } + + @ParameterizedTest + @ValueSource(strings = { "smtp://www.google.com", + "htp://test", + "unkown" + }) + void shouldFailOnInvalidUrls(final String url) { + assertThat(UrlValidator.isValidUrl(url)).isFalse(); + } +} \ No newline at end of file diff --git a/local/testing/api-tests/irs-api-tests.tavern.yaml b/local/testing/api-tests/irs-api-tests.tavern.yaml index fd6dd13ec9..bcd1bd527e 100644 --- a/local/testing/api-tests/irs-api-tests.tavern.yaml +++ b/local/testing/api-tests/irs-api-tests.tavern.yaml @@ -1,1010 +1,3 @@ -test_name: Make sure investigation job with invalid request is handled correctly - -strict: - - headers:off - - json:off - -stages: - - name: register a BPN investigation with invalid request - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" - json: - key: - globalAssetId111: "{tavern.env_vars.GLOBAL_ASSET_ID_ESS_AS_BUILT}" - bpn111: "{tavern.env_vars.BPN_ESS_AS_BUILT}" - incidentBPNSs111: - - "{tavern.env_vars.BPN_ESS_INCIDENT}" - method: POST - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 400 - verify_response_with: - function: local.testing.api-tests.tavern_helpers:errors_for_invalid_investigation_request_are_correct - json: - statusCode: BAD_REQUEST - error: "Invalid Arguments." - headers: - content-type: application/json - - ---- - - -test_name: Make sure investigation job with valid globalAssetId and BPN is processed correctly - -strict: - - headers:off - - json:off - -stages: - - name: register a BPN investigation job with valid globalAssetId - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" - json: - key: - # Tested with Vehicle A - globalAssetId: urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e - bpn: BPNL00000003AYRE - bomLifecycle: asPlanned - callbackUrl: http://testikus.com - incidentBPNSs: - - BPNS00000003B6LU - method: POST - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 201 - headers: - content-type: application/json - save: - json: - job_id: id - - - &verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED - name: verify job response with desired test steps and wait for desired job status - max_retries: 180 - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" - params: - returnUncompletedJob: true - method: GET - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 200 - json: - job: - state: COMPLETED - delay_after: 5 - - - name: get response for created investigation - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" - params: - returnUncompletedJob: true - method: GET - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 200 - verify_response_with: - - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected - extra_kwargs: - expectedSupplyChainImpacted: "Yes" - - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested - headers: - content-type: application/json - - ---- - - -test_name: Make sure investigation job with valid globalAssetId for unknown BPN is processed correctly - -strict: - - headers:off - - json:off - -stages: - - name: register a BPN investigation job with valid globalAssetId for unknown BPN - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" - json: - key: - # Tested with Vehicle A - globalAssetId: urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e - bpn: BPNL00000003AYRE - bomLifecycle: asPlanned - callbackUrl: http://testikus.com - incidentBPNSs: - - BPNS00ARBITRARY9 - method: POST - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 201 - headers: - content-type: application/json - save: - json: - job_id: id - - - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED - - - name: get response for created investigation - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" - params: - returnUncompletedJob: true - method: GET - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 200 - verify_response_with: - - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected - extra_kwargs: - expectedSupplyChainImpacted: "No" - - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested - headers: - content-type: application/json - - ---- - - -test_name: Make sure investigation job with unknown globalAssetId and valid BPN is processed correctly - -strict: - - headers:off - - json:off - -stages: - - name: register a BPN investigation with unknown globalAssetId - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" - json: - key: - globalAssetId: urn:uuid:2c57b0e9-a653-411d-bdcd-64787e955555 - bpn: BPNL00000003AYRE - incidentBPNSs: - - BPNS00000003B6LU - method: POST - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 201 - headers: - content-type: application/json - save: - json: - job_id: id - - - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED - - - name: get response for created investigation - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" - params: - returnUncompletedJob: true - method: GET - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 200 - verify_response_with: - - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected - extra_kwargs: - expectedSupplyChainImpacted: "Unknown" - - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested - headers: - content-type: application/json - - ---- - - -test_name: Make sure investigation job with valid globalAssetId and valid BPN but partial supply chain is processed correctly - -strict: - - headers:off - - json:off - -stages: - - name: register a BPN investigation job with valid globalAssetId and valid BPN - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" - json: - key: - #tested with Vehicle D - globalAssetId: urn:uuid:3a2a1ca9-c6c1-49c7-a7ae-1dfc5fb9881f - bpn: BPNL00ARBITRARY8 - bomLifecycle: asPlanned - callbackUrl: http://testikus.com - incidentBPNSs: - - BPNS0ARBITRARY11 - method: POST - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 201 - headers: - content-type: application/json - save: - json: - job_id: id - - - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED - - - name: get response for created investigation - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" - params: - returnUncompletedJob: true - method: GET - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 200 - verify_response_with: - - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected - extra_kwargs: - expectedSupplyChainImpacted: "Yes" - - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested - headers: - content-type: application/json - - - ---- - - -test_name: Make sure investigation job with valid globalAssetId and valid BPN but not reachable incidentBPN is processed correctly - -strict: - - headers:off - - json:off - -stages: - - name: register a BPN investigation job with valid globalAssetId and valid BPN but not reachable incidentBPN - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" - json: - key: - #tested with Vehicle B - globalAssetId: urn:uuid:68904173-ad59-4a77-8412-3e73fcafbd8b - bpn: BPNL00000003B6LU - bomLifecycle: asPlanned - callbackUrl: http://testikus.com - incidentBPNSs: - - BPNS00000003AXS3 - method: POST - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 201 - headers: - content-type: application/json - save: - json: - job_id: id - - - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED - - - name: get response for created investigation - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" - params: - returnUncompletedJob: true - method: GET - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 200 - verify_response_with: - - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected - extra_kwargs: - expectedSupplyChainImpacted: "Unknown" - - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested - headers: - content-type: application/json - - ---- - - -test_name: Make sure investigation job with several relationships for valid globalAssetId and BPN is processed correctly - -strict: - - headers:off - - json:off - -stages: - - name: register a BPN investigation job with valid globalAssetId with several relationships - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" - json: - key: - # Tested with Vehicle C - globalAssetId: urn:uuid:1c7a25ea-0490-4944-b9c9-d8c666d47958 - bpn: BPNL00ARBITRARY4 - incidentBPNSs: - - BPNS00ARBITRARY7 - method: POST - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 201 - headers: - content-type: application/json - save: - json: - job_id: id - - - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED - - - name: get response for created investigation - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" - params: - returnUncompletedJob: true - method: GET - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 200 - verify_response_with: - - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected - extra_kwargs: - expectedSupplyChainImpacted: "Yes" - - function: local.testing.api-tests.tavern_helpers:relationships_for_BPN_investigations_contains_several_childs - - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested - - function: local.testing.api-tests.tavern_helpers:tombstones_are_empty - - function: local.testing.api-tests.tavern_helpers:relationships_are_not_empty - - function: local.testing.api-tests.tavern_helpers:submodels_are_not_empty - - function: local.testing.api-tests.tavern_helpers:check_timestamps_for_completed_jobs - headers: - content-type: application/json - - ---- - - -test_name: Make sure investigation job for globalAssetId with missing PartSiteInformationAsPlanned is processed correctly - -strict: - - headers:off - - json:off - -stages: - - name: register a BPN investigation job with valid globalAssetId - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" - json: - key: - globalAssetId: urn:uuid:b0faace3-d41f-45b8-9573-175a33efbaaf - bpn: BPNL00ARBITRARY8 - bomLifecycle: asPlanned - callbackUrl: http://testikus.com - incidentBPNSs: - - BPNL0ARBITRARY11 - method: POST - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 201 - headers: - content-type: application/json - save: - json: - job_id: id - - - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED - - - name: get response for created investigation - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" - params: - returnUncompletedJob: true - method: GET - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 200 - verify_response_with: - - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected - extra_kwargs: - expectedSupplyChainImpacted: "Unknown" - - function: local.testing.api-tests.tavern_helpers:tombstones_have_size - extra_kwargs: - number_of_tombstones: 1 - - function: local.testing.api-tests.tavern_helpers:tombstone_for_ess_validation_is_correct - extra_kwargs: - expected_error_detail: "AspectType 'PartSiteInformationAsPlanned' not found in Job." - headers: - content-type: application/json - - ---- - - -test_name: Make sure investigation job for globalAssetId with missing BPNS in PartSiteInformationAsPlanned is processed correctly - -strict: - - headers:off - - json:off - -stages: - - name: register a BPN investigation job with valid globalAssetId - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" - json: - key: - globalAssetId: urn:uuid:f5024c70-6c4f-4ec5-b23b-aa6a91110611 - bpn: BPNL00ARBITRARY8 - bomLifecycle: asPlanned - callbackUrl: http://testikus.com - incidentBPNSs: - - BPNL0ARBITRARY11 - method: POST - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 201 - headers: - content-type: application/json - save: - json: - job_id: id - - - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED - - - name: get response for created investigation and check results - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" - params: - returnUncompletedJob: true - method: GET - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 200 - verify_response_with: - - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected - extra_kwargs: - expectedSupplyChainImpacted: "Unknown" - - function: local.testing.api-tests.tavern_helpers:tombstones_have_size - extra_kwargs: - number_of_tombstones: 2 - - function: local.testing.api-tests.tavern_helpers:tombstone_for_submodel_validation_is_correct - extra_kwargs: - expected_error_detail: "Submodel payload validation failed. $.sites[0]: required property 'catenaXsiteId' not found" - - function: local.testing.api-tests.tavern_helpers:tombstone_for_ess_validation_is_correct - extra_kwargs: - expected_error_detail: "AspectType 'PartSiteInformationAsPlanned' not found in Job." - headers: - content-type: application/json - - ---- - - -test_name: Make sure first level supplier BPNL in investigation job with four level request has been detected correctly - -strict: - - headers:off - - json:off - -stages: - - name: register a BPN investigation job with valid globalAssetId - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" - json: - key: - # Tested with Vehicle A - globalAssetId: urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e - bpn: BPNL00000003AYRE - bomLifecycle: asPlanned - callbackUrl: http://testikus.com - incidentBPNSs: - - BPNS00000003B6LU - method: POST - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 201 - headers: - content-type: application/json - save: - json: - job_id: id - - - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED - - - name: get response for created investigation and check results - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" - params: - returnUncompletedJob: true - method: GET - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 200 - verify_response_with: - - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected - extra_kwargs: - expectedSupplyChainImpacted: "Yes" - - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested - - function: local.testing.api-tests.tavern_helpers:supplyChainFirstLevelBpn_is_as_expected - extra_kwargs: - expectedBpnl: BPNL00ARBITRARY1 - headers: - content-type: application/json - - ---- - - -test_name: Make sure first level supplier BPNL in investigation job with several impacted nodes has been detected correctly - -strict: - - headers:off - - json:off - -stages: - - name: register a BPN investigation job with valid globalAssetId - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" - json: - key: - # Tested with Vehicle A on second level - globalAssetId: urn:uuid:aad27ddb-43aa-4e42-98c2-01e529ef127c - bpn: BPNL00ARBITRARY1 - bomLifecycle: asPlanned - callbackUrl: http://testikus.com - incidentBPNSs: - - BPNS00000003B6LU - method: POST - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 201 - headers: - content-type: application/json - save: - json: - job_id: id - - - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED - - - name: get response for created investigation and check results - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" - params: - returnUncompletedJob: true - method: GET - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 200 - verify_response_with: - - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected - extra_kwargs: - expectedSupplyChainImpacted: "Yes" - - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested - - function: local.testing.api-tests.tavern_helpers:supplyChainFirstLevelBpn_is_as_expected - extra_kwargs: - expectedBpnl: BPNL00000003B6LU - headers: - content-type: application/json - - ---- - - -test_name: Make sure first level supplier bpnl in investigation job with three level request has been detected correctly - -strict: - - headers:off - - json:off - -stages: - - name: register a BPN investigation job with valid globalAssetId - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" - json: - key: - # Tested with Vehicle C - globalAssetId: urn:uuid:1c7a25ea-0490-4944-b9c9-d8c666d47958 - bpn: BPNL00ARBITRARY4 - incidentBPNSs: - - BPNS00ARBITRARY7 - method: POST - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 201 - headers: - content-type: application/json - save: - json: - job_id: id - - - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED - - - name: get response for created investigation and check results - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" - params: - returnUncompletedJob: true - method: GET - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 200 - verify_response_with: - - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected - extra_kwargs: - expectedSupplyChainImpacted: "Yes" - - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested - - function: local.testing.api-tests.tavern_helpers:supplyChainFirstLevelBpn_is_as_expected - extra_kwargs: - expectedBpnl: BPNL00ARBITRARY5 - headers: - content-type: application/json - - ---- - - -test_name: Make sure first level supplier bpnl in investigation job with one level request has been detected correctly - -strict: - - headers:off - - json:off - -stages: - - name: register a BPN investigation job with valid globalAssetId - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" - json: - key: - #tested with Vehicle D - globalAssetId: urn:uuid:3a2a1ca9-c6c1-49c7-a7ae-1dfc5fb9881f - bpn: BPNL00ARBITRARY8 - incidentBPNSs: - - BPNS0ARBITRARY10 - method: POST - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 201 - headers: - content-type: application/json - save: - json: - job_id: id - - - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED - - - name: get response for created investigation and check results - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" - params: - returnUncompletedJob: true - method: GET - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 200 - verify_response_with: - - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected - extra_kwargs: - expectedSupplyChainImpacted: "Yes" - - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested - - function: local.testing.api-tests.tavern_helpers:supplyChainFirstLevelBpn_is_as_expected - extra_kwargs: - expectedBpnl: BPNL0ARBITRARY10 - headers: - content-type: application/json - - ---- - - -test_name: Make sure one hop in several supplyChain impacted nodes has been detected as shortest correctly - -strict: - - headers:off - - json:off - -stages: - - name: register a BPN investigation job with valid globalAssetId - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" - json: - key: - # Tested with Vehicle A on second level - globalAssetId: urn:uuid:aad27ddb-43aa-4e42-98c2-01e529ef127c - bpn: BPNL00ARBITRARY1 - bomLifecycle: asPlanned - callbackUrl: http://testikus.com - incidentBPNSs: - - BPNS00000003B6LU - method: POST - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 201 - headers: - content-type: application/json - save: - json: - job_id: id - - - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED - - - name: get response for created investigation and check results - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" - params: - returnUncompletedJob: true - method: GET - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 200 - verify_response_with: - - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected - extra_kwargs: - expectedSupplyChainImpacted: "Yes" - - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested - - function: local.testing.api-tests.tavern_helpers:supplyChainhops_is_as_expected - extra_kwargs: - expectedHops: 1 - headers: - content-type: application/json - - ---- - - -test_name: Make sure three hops in supplyChain impacted investigation job has been detected correctly - -strict: - - headers:off - - json:off - -stages: - - name: register a BPN investigation job with valid globalAssetId - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" - json: - key: - # Tested with Vehicle C - globalAssetId: urn:uuid:1c7a25ea-0490-4944-b9c9-d8c666d47958 - bpn: BPNL00ARBITRARY4 - incidentBPNSs: - - BPNS00ARBITRARY7 - method: POST - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 201 - headers: - content-type: application/json - save: - json: - job_id: id - - - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED - - - name: get response for created investigation and check results - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" - params: - returnUncompletedJob: true - method: GET - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 200 - verify_response_with: - - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected - extra_kwargs: - expectedSupplyChainImpacted: "Yes" - - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested - - function: local.testing.api-tests.tavern_helpers:supplyChainhops_is_as_expected - extra_kwargs: - expectedHops: 3 - headers: - content-type: application/json - - ---- - - -test_name: Make sure one hops in supplyChain impacted investigation job has been detected correctly - -strict: - - headers:off - - json:off - -stages: - - name: register a BPN investigation job with valid globalAssetId - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" - json: - key: - #tested with Vehicle D - globalAssetId: urn:uuid:3a2a1ca9-c6c1-49c7-a7ae-1dfc5fb9881f - bpn: BPNL00ARBITRARY8 - incidentBPNSs: - - BPNS0ARBITRARY10 - method: POST - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 201 - headers: - content-type: application/json - save: - json: - job_id: id - - - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED - - - name: get response for created investigation and check results - request: - url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" - params: - returnUncompletedJob: true - method: GET - headers: - content-type: application/json - $ext: - function: local.testing.api-tests.tavern_helpers:create_api_key_ess - response: - status_code: 200 - verify_response_with: - - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected - extra_kwargs: - expectedSupplyChainImpacted: "Yes" - - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested - - function: local.testing.api-tests.tavern_helpers:supplyChainhops_is_as_expected - extra_kwargs: - expectedHops: 1 - headers: - content-type: application/json - -############################### \/ ESS Tests with T-Systems and submodel servers \/ ############################## -####### !!!!!! Commented out since there is no testdata available for the moment !!!!!! ###### -#--- -# -# -#test_name: Make sure investigation job with valid globalAssetId and BPN is processed correctly in T-Systems -# -#strict: -# - headers:off -# - json:off -# -#stages: -# - name: register a BPN investigation job with valid globalAssetId to T-Systems -# request: -# url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" -# json: -# key: -# globalAssetId: urn:uuid:c7a2b803-f8fe-4b79-b6fc-967ce847c9a9 -# bpn: BPNL00000003B0Q0 -# bomLifecycle: asPlanned -# callbackUrl: http://testikus.com -# incidentBPNSs: -# - BPNL00000003B0Q0 -# method: POST -# headers: -# content-type: application/json -# $ext: -# function: local.testing.api-tests.tavern_helpers:create_api_key_ess -# response: -# status_code: 201 -# headers: -# content-type: application/json -# save: -# json: -# job_id: id -# -# - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED -# -# - name: get response for created investigation -# request: -# url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" -# params: -# returnUncompletedJob: true -# method: GET -# headers: -# content-type: application/json -# $ext: -# function: local.testing.api-tests.tavern_helpers:create_api_key_ess -# response: -# status_code: 200 -# verify_response_with: -# - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected -# extra_kwargs: -# expectedSupplyChainImpacted: "Yes" -# - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested -# headers: -# content-type: application/json -# - -############################## /\ ESS Tests with T-Systems and submodel servers /\ ############################## -###### !!!!!! Commented out since there is no testdata available for the moment !!!!!! ###### ---- - - test_name: Make sure server process job after authorization (1.0.0) strict: @@ -1518,7 +511,7 @@ stages: json: key: globalAssetId: "urn:uuid:4509ea7c-c8d2-41a1-83ca-c214ee34af6c" - bpn: "BPNL00000003AVTH" + bpn: "BPNL00000003AYRE" aspects: - urn:samm:io.catenax.material_for_recycling:1.1.0#MaterialForRecycling collectAspects: true @@ -1576,8 +569,8 @@ stages: url: "{tavern.env_vars.IRS_HOST}/irs/jobs" json: key: - globalAssetId: "urn:uuid:4c9bbfb1-414c-4c55-b197-3b3958d73ea1" #"urn:uuid:397b63ae-89d7-4131-b45a-575e840dc5c5" - bpn: "BPNL00000003AVTH" + globalAssetId: "urn:uuid:4c9bbfb1-414c-4c55-b197-3b3958d73ea1" #"urn:uuid:397b63ae-89d7-4131-b45a-575e840dc5c5" + bpn: "BPNL00000003AYRE" aspects: - urn:samm:io.catenax.batch:3.0.0#Batch collectAspects: true diff --git a/local/testing/api-tests/irs-ess-api-tests.tavern.yaml b/local/testing/api-tests/irs-ess-api-tests.tavern.yaml new file mode 100644 index 0000000000..665e7d1b66 --- /dev/null +++ b/local/testing/api-tests/irs-ess-api-tests.tavern.yaml @@ -0,0 +1,1004 @@ +test_name: Make sure investigation job with invalid request is handled correctly + +strict: + - headers:off + - json:off + +stages: + - name: register a BPN investigation with invalid request + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" + json: + key: + globalAssetId111: "{tavern.env_vars.GLOBAL_ASSET_ID_ESS_AS_BUILT}" + bpn111: "{tavern.env_vars.BPN_ESS_AS_BUILT}" + incidentBPNSs111: + - "{tavern.env_vars.BPN_ESS_INCIDENT}" + method: POST + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 400 + verify_response_with: + function: local.testing.api-tests.tavern_helpers:errors_for_invalid_investigation_request_are_correct + json: + statusCode: BAD_REQUEST + error: "Invalid Arguments." + headers: + content-type: application/json + + +--- + + +test_name: Make sure investigation job with valid globalAssetId and BPN is processed correctly + +strict: + - headers:off + - json:off + +stages: + - name: register a BPN investigation job with valid globalAssetId + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" + json: + key: + # Tested with Vehicle A + globalAssetId: urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e + bpn: BPNL00000003AYRE + bomLifecycle: asPlanned + callbackUrl: http://testikus.com + incidentBPNSs: + - BPNS00000003B6LU + method: POST + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 201 + headers: + content-type: application/json + save: + json: + job_id: id + + - &verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED + name: verify job response with desired test steps and wait for desired job status + max_retries: 180 + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" + params: + returnUncompletedJob: true + method: GET + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 200 + json: + job: + state: COMPLETED + delay_after: 5 + + - name: get response for created investigation + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" + params: + returnUncompletedJob: true + method: GET + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 200 + verify_response_with: + - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected + extra_kwargs: + expectedSupplyChainImpacted: "Yes" + - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested + headers: + content-type: application/json + + +--- + + +test_name: Make sure investigation job with valid globalAssetId for unknown BPN is processed correctly + +strict: + - headers:off + - json:off + +stages: + - name: register a BPN investigation job with valid globalAssetId for unknown BPN + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" + json: + key: + # Tested with Vehicle A + globalAssetId: urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e + bpn: BPNL00000003AYRE + bomLifecycle: asPlanned + callbackUrl: http://testikus.com + incidentBPNSs: + - BPNS00ARBITRARY9 + method: POST + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 201 + headers: + content-type: application/json + save: + json: + job_id: id + + - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED + + - name: get response for created investigation + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" + params: + returnUncompletedJob: true + method: GET + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 200 + verify_response_with: + - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected + extra_kwargs: + expectedSupplyChainImpacted: "No" + - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested + headers: + content-type: application/json + + +--- + + +test_name: Make sure investigation job with unknown globalAssetId and valid BPN is processed correctly + +strict: + - headers:off + - json:off + +stages: + - name: register a BPN investigation with unknown globalAssetId + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" + json: + key: + globalAssetId: urn:uuid:2c57b0e9-a653-411d-bdcd-64787e955555 + bpn: BPNL00000003AYRE + incidentBPNSs: + - BPNS00000003B6LU + method: POST + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 201 + headers: + content-type: application/json + save: + json: + job_id: id + + - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED + + - name: get response for created investigation + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" + params: + returnUncompletedJob: true + method: GET + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 200 + verify_response_with: + - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected + extra_kwargs: + expectedSupplyChainImpacted: "Unknown" + - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested + headers: + content-type: application/json + + +--- + + +test_name: Make sure investigation job with valid globalAssetId and valid BPN but partial supply chain is processed correctly + +strict: + - headers:off + - json:off + +stages: + - name: register a BPN investigation job with valid globalAssetId and valid BPN + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" + json: + key: + #tested with Vehicle D + globalAssetId: urn:uuid:3a2a1ca9-c6c1-49c7-a7ae-1dfc5fb9881f + bpn: BPNL00ARBITRARY8 + bomLifecycle: asPlanned + callbackUrl: http://testikus.com + incidentBPNSs: + - BPNS0ARBITRARY11 + method: POST + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 201 + headers: + content-type: application/json + save: + json: + job_id: id + + - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED + + - name: get response for created investigation + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" + params: + returnUncompletedJob: true + method: GET + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 200 + verify_response_with: + - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected + extra_kwargs: + expectedSupplyChainImpacted: "Yes" + - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested + headers: + content-type: application/json + + + +--- + + +test_name: Make sure investigation job with valid globalAssetId and valid BPN but not reachable incidentBPN is processed correctly + +strict: + - headers:off + - json:off + +stages: + - name: register a BPN investigation job with valid globalAssetId and valid BPN but not reachable incidentBPN + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" + json: + key: + #tested with Vehicle B + globalAssetId: urn:uuid:68904173-ad59-4a77-8412-3e73fcafbd8b + bpn: BPNL00000003B6LU + bomLifecycle: asPlanned + callbackUrl: http://testikus.com + incidentBPNSs: + - BPNS00000003AXS3 + method: POST + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 201 + headers: + content-type: application/json + save: + json: + job_id: id + + - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED + + - name: get response for created investigation + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" + params: + returnUncompletedJob: true + method: GET + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 200 + verify_response_with: + - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected + extra_kwargs: + expectedSupplyChainImpacted: "Unknown" + - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested + headers: + content-type: application/json + + +--- + + +test_name: Make sure investigation job with several relationships for valid globalAssetId and BPN is processed correctly + +strict: + - headers:off + - json:off + +stages: + - name: register a BPN investigation job with valid globalAssetId with several relationships + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" + json: + key: + # Tested with Vehicle C + globalAssetId: urn:uuid:1c7a25ea-0490-4944-b9c9-d8c666d47958 + bpn: BPNL00ARBITRARY4 + incidentBPNSs: + - BPNS00ARBITRARY7 + method: POST + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 201 + headers: + content-type: application/json + save: + json: + job_id: id + + - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED + + - name: get response for created investigation + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" + params: + returnUncompletedJob: true + method: GET + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 200 + verify_response_with: + - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected + extra_kwargs: + expectedSupplyChainImpacted: "Yes" + - function: local.testing.api-tests.tavern_helpers:relationships_for_BPN_investigations_contains_several_childs + - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested + - function: local.testing.api-tests.tavern_helpers:tombstones_are_empty + - function: local.testing.api-tests.tavern_helpers:relationships_are_not_empty + - function: local.testing.api-tests.tavern_helpers:submodels_are_not_empty + - function: local.testing.api-tests.tavern_helpers:check_timestamps_for_completed_jobs + headers: + content-type: application/json + + +--- + + +test_name: Make sure investigation job for globalAssetId with missing PartSiteInformationAsPlanned is processed correctly + +strict: + - headers:off + - json:off + +stages: + - name: register a BPN investigation job with valid globalAssetId + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" + json: + key: + globalAssetId: urn:uuid:b0faace3-d41f-45b8-9573-175a33efbaaf + bpn: BPNL00ARBITRARY8 + bomLifecycle: asPlanned + callbackUrl: http://testikus.com + incidentBPNSs: + - BPNL0ARBITRARY11 + method: POST + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 201 + headers: + content-type: application/json + save: + json: + job_id: id + + - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED + + - name: get response for created investigation + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" + params: + returnUncompletedJob: true + method: GET + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 200 + verify_response_with: + - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected + extra_kwargs: + expectedSupplyChainImpacted: "Unknown" + - function: local.testing.api-tests.tavern_helpers:tombstones_have_size + extra_kwargs: + number_of_tombstones: 1 + - function: local.testing.api-tests.tavern_helpers:tombstone_for_ess_validation_is_correct + extra_kwargs: + expected_error_detail: "AspectType 'PartSiteInformationAsPlanned' not found in Job." + headers: + content-type: application/json + + +--- + + +test_name: Make sure investigation job for globalAssetId with missing BPNS in PartSiteInformationAsPlanned is processed correctly + +strict: + - headers:off + - json:off + +stages: + - name: register a BPN investigation job with valid globalAssetId + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" + json: + key: + globalAssetId: urn:uuid:f5024c70-6c4f-4ec5-b23b-aa6a91110611 + bpn: BPNL00ARBITRARY8 + bomLifecycle: asPlanned + callbackUrl: http://testikus.com + incidentBPNSs: + - BPNL0ARBITRARY11 + method: POST + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 201 + headers: + content-type: application/json + save: + json: + job_id: id + + - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED + + - name: get response for created investigation and check results + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" + params: + returnUncompletedJob: true + method: GET + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 200 + verify_response_with: + - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected + extra_kwargs: + expectedSupplyChainImpacted: "Unknown" + - function: local.testing.api-tests.tavern_helpers:tombstones_have_size + extra_kwargs: + number_of_tombstones: 2 + - function: local.testing.api-tests.tavern_helpers:tombstone_for_submodel_validation_is_correct + extra_kwargs: + expected_error_detail: "Submodel payload validation failed. $.sites[0]: required property 'catenaXsiteId' not found" + - function: local.testing.api-tests.tavern_helpers:tombstone_for_ess_validation_is_correct + extra_kwargs: + expected_error_detail: "AspectType 'PartSiteInformationAsPlanned' not found in Job." + headers: + content-type: application/json + + +--- + + +test_name: Make sure first level supplier BPNL in investigation job with four level request has been detected correctly + +strict: + - headers:off + - json:off + +stages: + - name: register a BPN investigation job with valid globalAssetId + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" + json: + key: + # Tested with Vehicle A + globalAssetId: urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e + bpn: BPNL00000003AYRE + bomLifecycle: asPlanned + callbackUrl: http://testikus.com + incidentBPNSs: + - BPNS00000003B6LU + method: POST + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 201 + headers: + content-type: application/json + save: + json: + job_id: id + + - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED + + - name: get response for created investigation and check results + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" + params: + returnUncompletedJob: true + method: GET + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 200 + verify_response_with: + - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected + extra_kwargs: + expectedSupplyChainImpacted: "Yes" + - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested + - function: local.testing.api-tests.tavern_helpers:supplyChainFirstLevelBpn_is_as_expected + extra_kwargs: + expectedBpnl: BPNL00ARBITRARY1 + headers: + content-type: application/json + + +--- + + +test_name: Make sure first level supplier BPNL in investigation job with several impacted nodes has been detected correctly + +strict: + - headers:off + - json:off + +stages: + - name: register a BPN investigation job with valid globalAssetId + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" + json: + key: + # Tested with Vehicle A on second level + globalAssetId: urn:uuid:aad27ddb-43aa-4e42-98c2-01e529ef127c + bpn: BPNL00ARBITRARY1 + bomLifecycle: asPlanned + callbackUrl: http://testikus.com + incidentBPNSs: + - BPNS00000003B6LU + method: POST + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 201 + headers: + content-type: application/json + save: + json: + job_id: id + + - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED + + - name: get response for created investigation and check results + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" + params: + returnUncompletedJob: true + method: GET + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 200 + verify_response_with: + - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected + extra_kwargs: + expectedSupplyChainImpacted: "Yes" + - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested + - function: local.testing.api-tests.tavern_helpers:supplyChainFirstLevelBpn_is_as_expected + extra_kwargs: + expectedBpnl: BPNL00000003B6LU + headers: + content-type: application/json + + +--- + + +test_name: Make sure first level supplier bpnl in investigation job with three level request has been detected correctly + +strict: + - headers:off + - json:off + +stages: + - name: register a BPN investigation job with valid globalAssetId + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" + json: + key: + # Tested with Vehicle C + globalAssetId: urn:uuid:1c7a25ea-0490-4944-b9c9-d8c666d47958 + bpn: BPNL00ARBITRARY4 + incidentBPNSs: + - BPNS00ARBITRARY7 + method: POST + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 201 + headers: + content-type: application/json + save: + json: + job_id: id + + - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED + + - name: get response for created investigation and check results + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" + params: + returnUncompletedJob: true + method: GET + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 200 + verify_response_with: + - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected + extra_kwargs: + expectedSupplyChainImpacted: "Yes" + - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested + - function: local.testing.api-tests.tavern_helpers:supplyChainFirstLevelBpn_is_as_expected + extra_kwargs: + expectedBpnl: BPNL00ARBITRARY5 + headers: + content-type: application/json + + +--- + + +test_name: Make sure first level supplier bpnl in investigation job with one level request has been detected correctly + +strict: + - headers:off + - json:off + +stages: + - name: register a BPN investigation job with valid globalAssetId + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" + json: + key: + #tested with Vehicle D + globalAssetId: urn:uuid:3a2a1ca9-c6c1-49c7-a7ae-1dfc5fb9881f + bpn: BPNL00ARBITRARY8 + incidentBPNSs: + - BPNS0ARBITRARY10 + method: POST + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 201 + headers: + content-type: application/json + save: + json: + job_id: id + + - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED + + - name: get response for created investigation and check results + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" + params: + returnUncompletedJob: true + method: GET + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 200 + verify_response_with: + - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected + extra_kwargs: + expectedSupplyChainImpacted: "Yes" + - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested + - function: local.testing.api-tests.tavern_helpers:supplyChainFirstLevelBpn_is_as_expected + extra_kwargs: + expectedBpnl: BPNL0ARBITRARY10 + headers: + content-type: application/json + + +--- + + +test_name: Make sure one hop in several supplyChain impacted nodes has been detected as shortest correctly + +strict: + - headers:off + - json:off + +stages: + - name: register a BPN investigation job with valid globalAssetId + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" + json: + key: + # Tested with Vehicle A on second level + globalAssetId: urn:uuid:aad27ddb-43aa-4e42-98c2-01e529ef127c + bpn: BPNL00ARBITRARY1 + bomLifecycle: asPlanned + callbackUrl: http://testikus.com + incidentBPNSs: + - BPNS00000003B6LU + method: POST + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 201 + headers: + content-type: application/json + save: + json: + job_id: id + + - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED + + - name: get response for created investigation and check results + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" + params: + returnUncompletedJob: true + method: GET + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 200 + verify_response_with: + - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected + extra_kwargs: + expectedSupplyChainImpacted: "Yes" + - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested + - function: local.testing.api-tests.tavern_helpers:supplyChainhops_is_as_expected + extra_kwargs: + expectedHops: 1 + headers: + content-type: application/json + + +--- + + +test_name: Make sure three hops in supplyChain impacted investigation job has been detected correctly + +strict: + - headers:off + - json:off + +stages: + - name: register a BPN investigation job with valid globalAssetId + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" + json: + key: + # Tested with Vehicle C + globalAssetId: urn:uuid:1c7a25ea-0490-4944-b9c9-d8c666d47958 + bpn: BPNL00ARBITRARY4 + incidentBPNSs: + - BPNS00ARBITRARY7 + method: POST + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 201 + headers: + content-type: application/json + save: + json: + job_id: id + + - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED + + - name: get response for created investigation and check results + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" + params: + returnUncompletedJob: true + method: GET + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 200 + verify_response_with: + - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected + extra_kwargs: + expectedSupplyChainImpacted: "Yes" + - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested + - function: local.testing.api-tests.tavern_helpers:supplyChainhops_is_as_expected + extra_kwargs: + expectedHops: 3 + headers: + content-type: application/json + + +--- + + +test_name: Make sure one hops in supplyChain impacted investigation job has been detected correctly + +strict: + - headers:off + - json:off + +stages: + - name: register a BPN investigation job with valid globalAssetId + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" + json: + key: + #tested with Vehicle D + globalAssetId: urn:uuid:3a2a1ca9-c6c1-49c7-a7ae-1dfc5fb9881f + bpn: BPNL00ARBITRARY8 + incidentBPNSs: + - BPNS0ARBITRARY10 + method: POST + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 201 + headers: + content-type: application/json + save: + json: + job_id: id + + - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED + + - name: get response for created investigation and check results + request: + url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" + params: + returnUncompletedJob: true + method: GET + headers: + content-type: application/json + $ext: + function: local.testing.api-tests.tavern_helpers:create_api_key_ess + response: + status_code: 200 + verify_response_with: + - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected + extra_kwargs: + expectedSupplyChainImpacted: "Yes" + - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested + - function: local.testing.api-tests.tavern_helpers:supplyChainhops_is_as_expected + extra_kwargs: + expectedHops: 1 + headers: + content-type: application/json + +############################### \/ ESS Tests with T-Systems and submodel servers \/ ############################## +####### !!!!!! Commented out since there is no testdata available for the moment !!!!!! ###### +#--- +# +# +#test_name: Make sure investigation job with valid globalAssetId and BPN is processed correctly in T-Systems +# +#strict: +# - headers:off +# - json:off +# +#stages: +# - name: register a BPN investigation job with valid globalAssetId to T-Systems +# request: +# url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations" +# json: +# key: +# globalAssetId: urn:uuid:c7a2b803-f8fe-4b79-b6fc-967ce847c9a9 +# bpn: BPNL00000003B0Q0 +# bomLifecycle: asPlanned +# callbackUrl: http://testikus.com +# incidentBPNSs: +# - BPNL00000003B0Q0 +# method: POST +# headers: +# content-type: application/json +# $ext: +# function: local.testing.api-tests.tavern_helpers:create_api_key_ess +# response: +# status_code: 201 +# headers: +# content-type: application/json +# save: +# json: +# job_id: id +# +# - *verify_ESS_job_response_with_desired_test_steps_and_wait_up_to_15_minutes_for_COMPLETED +# +# - name: get response for created investigation +# request: +# url: "{tavern.env_vars.IRS_ESS_HOST}/ess/bpn/investigations/{job_id}" +# params: +# returnUncompletedJob: true +# method: GET +# headers: +# content-type: application/json +# $ext: +# function: local.testing.api-tests.tavern_helpers:create_api_key_ess +# response: +# status_code: 200 +# verify_response_with: +# - function: local.testing.api-tests.tavern_helpers:supplyChainImpacted_is_as_expected +# extra_kwargs: +# expectedSupplyChainImpacted: "Yes" +# - function: local.testing.api-tests.tavern_helpers:ESS_job_parameter_are_as_requested +# headers: +# content-type: application/json +# + +############################## /\ ESS Tests with T-Systems and submodel servers /\ ############################## +###### !!!!!! Commented out since there is no testdata available for the moment !!!!!! ###### diff --git a/local/testing/testdata/prepare-expected-files.sh b/local/testing/testdata/prepare-expected-files.sh new file mode 100644 index 0000000000..7b271ffcfd --- /dev/null +++ b/local/testing/testdata/prepare-expected-files.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# +# Copyright (c) 2022,2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2021,2024 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +PROVIDER_BPN=$1 + +bpn_regex_pattern='(BPN)(L|S|A)([a-zA-Z0-9]{12})' +replacement=$PROVIDER_BPN +directory="irs-cucumber-tests/src/test/resources/expected-files" + +# Iterate over all files in the directory +for file in "$directory"/*; do + # Check if the file is a regular file + if [ -f "$file" ]; then + # Use sed to replace the pattern and overwrite the file + sed -i -E "s/$bpn_regex_pattern/$replacement/g" "$file" + echo "Processed: $file" + fi +done \ No newline at end of file diff --git a/local/testing/testdata/upload-testdata.sh b/local/testing/testdata/upload-testdata.sh new file mode 100644 index 0000000000..5a9f85004b --- /dev/null +++ b/local/testing/testdata/upload-testdata.sh @@ -0,0 +1,72 @@ +#!/bin/bash +# +# Copyright (c) 2022,2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2021,2024 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# +SCRIPT_PATH="local/testing/testdata/transform-and-upload.py" + +API_KEY=$1 +PROVIDER_BPN=$2 +ALLOWED_BPN=$3 + +SUBMODEL_URL=$4 +SUBMODEL_UPLOAD_URL=$5 + +DTR_URL=$6 +DTR_UPLOAD_URL=$7 + +EDC_CONTROLPLANE_URL=$8 +EDC_UPLOAD_URL=$9 + +EDC_DATAPLANE_URL=${10} + +bpn_regex_pattern='(BPN)(L|S|A)([a-zA-Z0-9]{12})' +replacement=$PROVIDER_BPN + +upload_data() { + local filePath="$1" + local policyId="$2" + + sed -i -E "s/$bpn_regex_pattern/$replacement/g" "$filePath" + + python "$SCRIPT_PATH" \ + -f "$filePath" \ + -s "$SUBMODEL_URL" \ + -su "$SUBMODEL_UPLOAD_URL" \ + -a "$DTR_URL" \ + -au "$DTR_UPLOAD_URL" \ + -edc "$EDC_CONTROLPLANE_URL" \ + -eu "$EDC_UPLOAD_URL" \ + --edcBPN "$PROVIDER_BPN" \ + -d "$EDC_DATAPLANE_URL" \ + -k "$API_KEY" \ + -p "$policyId" \ + --allowedBPNs "$ALLOWED_BPN" \ + --aas3 +} + +policyTraceability="traceability-core" +policyNotAccepted="id-3.0-not-accepted" + +upload_data "local/testing/testdata/CX_Testdata_v.1.7.0_PartType.json" $policyTraceability +upload_data "local/testing/testdata/CX_Testdata_v1.7.0_PartInstance-reduced.json" $policyTraceability +upload_data "local/testing/testdata/CX_Testdata_v1.7.0_PartInstance-not-accepted-policy.json" $policyNotAccepted +upload_data "local/testing/testdata/CX_Testdata_529_compatibility_SingleLevelBomAsBuilt.json" $policyTraceability +upload_data "local/testing/testdata/CX_Testdata_529_compatibility_SingleLevelBomAsPlanned.json" $policyTraceability +upload_data "local/testing/testdata/CX_Testdata_529_compatibility_SingleLevelUsageAsBuilt.json" $policyTraceability +upload_data "local/testing/testdata/CX_Testdata_529_compatibility_SingleLevelUsageAsPlanned.json" $policyTraceability