Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions skills/cuopt-developer/BENCHMARK.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ This benchmark summarizes 3-Tier Evaluation from NVSkills-Eval results for the s
## Evaluation Summary

- Skill: `cuopt-developer`
- Evaluation date: 2026-07-02
- Evaluation date: 2026-07-10
- NVSkills-Eval profile: `external`
- Environment: `astra-sandbox`
- Dataset: 3 evaluation tasks
Expand Down Expand Up @@ -55,10 +55,10 @@ Task composition is derived from the evaluation dataset when possible. Entries w
| Dimension | Num | `claude-code` | `codex` |
|---|---:|---:|---:|
| Security | 3 | 100% (+0%) | 100% (+0%) |
| Correctness | 3 | 75% (+20%) | 90% (+43%) |
| Discoverability | 3 | 42% (+25%) | 79% (+52%) |
| Effectiveness | 3 | 95% (+26%) | 78% (+35%) |
| Efficiency | 3 | 48% (+22%) | 77% (+35%) |
| Correctness | 3 | 75% (+18%) | 90% (+38%) |
| Discoverability | 3 | 42% (+25%) | 88% (+62%) |
| Effectiveness | 3 | 94% (+32%) | 90% (+36%) |
| Efficiency | 3 | 48% (+22%) | 89% (+49%) |

Score values show skill-assisted performance. Values in parentheses show uplift versus the no-skill baseline when baseline data is available.

Expand Down
7 changes: 7 additions & 0 deletions skills/cuopt-developer/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,13 @@ Is this correct?"

`sudo`/system-level changes are the one non-negotiable refusal; user-space installs and conda env setup are allowed. See [Refusal Rules — Read First](#refusal-rules--read-first).

### 6. Prefer Low-Maintenance, Hard-to-Break Designs

When adding an API — a setter, endpoint, parameter, or a layer that wraps another — favor the design that keeps a single source of truth and has no silent-failure path:

- **Derive, don't duplicate.** A second copy of a surface (a hand-maintained list of the methods/fields another layer already defines, or shadow state kept in parallel with the real data) drifts the moment someone forgets to update it. Derive it from the single source instead, so there is nothing to keep in sync.
- **Fail loud, not silent.** Prefer a design where forgetting a step is caught automatically over one that quietly does the wrong thing. When a mechanism leans on a convention, add a test that asserts full coverage, so a case that slips the convention fails CI instead of silently misbehaving.

---

## Before You Start: Required Questions
Expand Down
27 changes: 13 additions & 14 deletions skills/cuopt-developer/skill-card.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ NVIDIA <br>
### License/Terms of Use: <br>
Apache 2.0 <br>
## Use Case: <br>
Developers and engineers who modify, build, test, and contribute to the NVIDIA cuOpt GPU-accelerated optimization engine codebase. <br>
Developers and engineers contributing to the NVIDIA cuOpt codebase use this skill to navigate the build system, follow coding conventions, submit PRs with DCO sign-off, and debug solver internals across C++/CUDA, Python, and server components. <br>

### Deployment Geography for Use: <br>
Global <br>

## Requirements / Dependencies: <br>
**Requires API Key or External Credential:** [Not Specified] <br>
**Credential Type(s):** [None identified] <br>
**Requires API Key or External Credential:** [Yes] <br>
**Credential Type(s):** [API key] <br>

Do not include secrets in prompts/logs/output; use least-privilege credentials; rotate keys as appropriate. <br>

Expand All @@ -25,32 +25,31 @@ Risk: Review before execution as proposals could introduce incorrect or misleadi
Mitigation: Review and scan skill before deployment. <br>

## Reference(s): <br>
- [first_time_setup.md](references/first_time_setup.md) <br>
- [build_and_test.md](references/build_and_test.md) <br>
- [contributing.md](references/contributing.md) <br>
- [conventions.md](references/conventions.md) <br>
- [first_time_setup.md](references/first_time_setup.md) <br>
- [python_bindings.md](references/python_bindings.md) <br>
- [troubleshooting.md](references/troubleshooting.md) <br>
- [vrp_skills.md](references/vrp_skills.md) <br>
- [numerical_debugging.md](resources/numerical_debugging.md) <br>
- [cuOpt User Guide](https://docs.nvidia.com/cuopt/user-guide/latest/introduction.html) <br>
- [cuopt-examples](https://github.com/NVIDIA/cuopt-examples) <br>


## Skill Output: <br>
**Output Type(s):** [Shell commands, Code, Configuration instructions] <br>
**Output Type(s):** [Code, Shell commands, Configuration instructions, Analysis] <br>
**Output Format:** [Markdown with inline code blocks] <br>
**Output Parameters:** [1D] <br>
**Other Properties Related to Output:** [None] <br>

## Evaluation Agents Used: <br>
- `claude-code` <br>
- `codex` <br>
- claude-code <br>
- codex <br>



## Evaluation Tasks: <br>
Evaluated against 3 evaluation tasks in the NVSkills-Eval external profile (astra-sandbox environment, 1 attempt per task, 50% pass threshold). <br>
Evaluated against 3 internal evaluation tasks (positive skill-activation cases). <br>

## Evaluation Metrics Used: <br>
Reported benchmark dimensions: <br>
Expand All @@ -75,13 +74,13 @@ Underlying evaluation signals used in this run: <br>
| Dimension | Num | `claude-code` | `codex` |
|---|---:|---:|---:|
| Security | 3 | 100% (+0%) | 100% (+0%) |
| Correctness | 3 | 75% (+20%) | 90% (+43%) |
| Discoverability | 3 | 42% (+25%) | 79% (+52%) |
| Effectiveness | 3 | 95% (+26%) | 78% (+35%) |
| Efficiency | 3 | 48% (+22%) | 77% (+35%) |
| Correctness | 3 | 75% (+18%) | 90% (+38%) |
| Discoverability | 3 | 42% (+25%) | 88% (+62%) |
| Effectiveness | 3 | 94% (+32%) | 90% (+36%) |
| Efficiency | 3 | 48% (+22%) | 89% (+49%) |

## Skill Version(s): <br>
26.08.00 (source: frontmatter) <br>
26.08.00 (source: frontmatter, pyproject.toml) <br>

## Ethical Considerations: <br>
NVIDIA believes Trustworthy AI is a shared responsibility and we have established policies and practices to enable development for a wide array of AI applications. When downloaded or used in accordance with our terms of service, developers should work with their internal team to ensure this skill meets requirements for the relevant industry and use case and addresses unforeseen product misuse. <br>
Expand Down
2 changes: 1 addition & 1 deletion skills/cuopt-developer/skill.oms.sig
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"x509CertificateChain":{"certificates":[{"rawBytes":"MIICgzCCAgmgAwIBAgIUKIyS7SxNteQIiWzK1dWj85E6520wCgYIKoZIzj0EAwMwVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwHhcNMjYwNDAxMDAwMDAwWhcNMjgwNDIyMTUzMzA5WjBUMQswCQYDVQQGEwJVUzEbMBkGA1UECgwSTlZJRElBIENvcnBvcmF0aW9uMSgwJgYDVQQDDB9OVklESUEgQWdlbnQgU2tpbGxzIFNpZ25pbmcgMDAxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEYoRM9bQl/dGlwSRNi6bTpIJUXH8Nv9GciP6LSflJYYMLCc296kpyuTSsk5ddbAWiDcFX3C/ydX3jwc+qCLYP6uHy9XphyLjOQ27Yb2J6rBLVtRBS1mgGco/Gr7fL6ODco4GaMIGXMB0GA1UdDgQWBBRQ/5ZW3nJ6lmo9SVk7I15o7UGmpTAfBgNVHSMEGDAWgBRPGpILxMBBleJSsBGjrMKsby1CgjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLm5kaXMubnZpZGlhLmNvbTAKBggqhkjOPQQDAwNoADBlAjAUygu/GiOCIXrgGr4SmLgeEVDcEitfFUv7ALbvLVGVyMysB3mxmO/uInZfXzWcJZsCMQDxuoxj4ZmO30jhkPIcCxGFCOvnUsnfU3TfGcouYm4M6iRpbKvtVnHPiy4bi6pcKf0="},{"rawBytes":"MIICiDCCAg6gAwIBAgIUZsIuSv9NkpJCNqtYEfCouVv5BzowCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASI72cR3ctKGg4VWnB3bNja6g1Z2PnOmFEopkPof+QeIcPk9rT+g9MjJnq51EQXL93a7C2GJ9J985G4o2V85VD7wJ1RaXhluHW2rf3y8bQGeAYaKMr5s/hUgn+M3/9WlWejgaAwgZ0wHQYDVR0OBBYEFE8akgvEwEGV4lKwEaOswqxvLUKCMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AubmRpcy5udmlkaWEuY29tMAoGCCqGSM49BAMDA2gAMGUCMQCeIMMfAbyzPDacw2MxG+Yt1cikrJX/DVxiGfXuHmkkXn6VgSzE79+lkqDErpVO2gYCMCNEColOyvUvkzZGUEI1hQ3PfMgi3FIo9tHoBKMw4/wGBLFpu/0ubtmbBXM6/UMOEw=="},{"rawBytes":"MIICRTCCAcygAwIBAgIUeJdY3rV86EdvFmG7L8LJBsyQFYkwCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABAYpiXCDjJ9NT2eSDhyHJVSw1Tbze18cGG2F/578oWvHxg23eQAhNRYdq88i1iOshZSO6C29doKui5Xpmo/7Ctw9Sx4PP2RzOmIuOLCuTdNtKcTRwi4GEsd5BAFvWj42M6NjMGEwHQYDVR0OBBYEFItnoAjjfuCEUvzyvWyI2vOGvwPjMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMCwtAjWLaNwgGWNCgdyNoTyvNhqWRECRJV2r3+7w8g0PL6NHLOsbkgE09BH95h8XlgIwTaQmbbUh2ChAJ5TA1wRiVDnCcvbzHlZl2jM2FcwQQZlk19LOAbyGMRixbu2Ww/rj"}]},"tlogEntries":[]},"dsseEnvelope":{"payload":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAiY3VvcHQtZGV2ZWxvcGVyIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjMzMWQ3YWMyMTFiNDdmNzg3YTg5MTU5ZjhkYTRiOWNiMDEwNGE5YTQ5MjE3MWM4Y2NlMTUzMTU3ZWRlNDk4MDciCiAgICAgIH0KICAgIH0KICBdLAogICJwcmVkaWNhdGVUeXBlIjogImh0dHBzOi8vbW9kZWxfc2lnbmluZy9zaWduYXR1cmUvdjEuMCIsCiAgInByZWRpY2F0ZSI6IHsKICAgICJzZXJpYWxpemF0aW9uIjogewogICAgICAibWV0aG9kIjogImZpbGVzIiwKICAgICAgImhhc2hfdHlwZSI6ICJzaGEyNTYiLAogICAgICAiYWxsb3dfc3ltbGlua3MiOiBmYWxzZSwKICAgICAgImlnbm9yZV9wYXRocyI6IFsKICAgICAgICAiLmdpdGh1YiIsCiAgICAgICAgIi5naXQiLAogICAgICAgICIuZ2l0aWdub3JlIiwKICAgICAgICAiLmdpdGF0dHJpYnV0ZXMiCiAgICAgIF0KICAgIH0sCiAgICAicmVzb3VyY2VzIjogWwogICAgICB7CiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogIkJFTkNITUFSSy5tZCIsCiAgICAgICAgImRpZ2VzdCI6ICIyMjRiMTc1OWJmNDViYjc5MjU1NjM3NDMwZmQzMWRmMjk5ZDA1OGFiMjkwMzkzMGNkZjVmMWM1MWRjNmNlYjFjIgogICAgICB9LAogICAgICB7CiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogIlNLSUxMLm1kIiwKICAgICAgICAiZGlnZXN0IjogIjkyYTNhZWY0Y2Y2MDc2NTZkNjY1MDg3YjY5ODI5NjYzZGNjYTJhNTE4YzE5YWRlYjVmNTIwMThmYmYyOTI5YTQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgIm5hbWUiOiAiYmVuY2htYXJrL2V2YWxzLmpzb24iLAogICAgICAgICJkaWdlc3QiOiAiMjFkNDVkY2QyMzNhMGMxOGM3NmI1MzIyOTAzMTY4ZGRmZWNjYWU5OWZjMWExMDliYTk2MDU3MDhlMTJhNDc5OSIKICAgICAgfSwKICAgICAgewogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAibmFtZSI6ICJldmFscy9ldmFscy5qc29uIiwKICAgICAgICAiZGlnZXN0IjogIjBhYTcxYTM5NTc3MTUxYjU3NGQ2MDg4NTM5NzU5YmIzZTI2MzdlM2M5MTZmMWZmM2IyYWI3MTUzN2QwZTgyZmIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgIm5hbWUiOiAicmVmZXJlbmNlcy9idWlsZF9hbmRfdGVzdC5tZCIsCiAgICAgICAgImRpZ2VzdCI6ICIwNmI1MWUyYmU3ODIzN2QzMjE3NGZiYTcwOGZkZGVmNzMyMGI1YzUzNzUwMTg1NTNmNGM5OTMzZWE1NTM5MzhhIgogICAgICB9LAogICAgICB7CiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogInJlZmVyZW5jZXMvY29udHJpYnV0aW5nLm1kIiwKICAgICAgICAiZGlnZXN0IjogImNhMmMwYWJkNjZlZmZjMGIzNjk1MmZiNzRlYmZiOWZmOWQzYmM5N2E5ZDUwNWQ3ZTI1YTA1M2VkOWEwMjg0NTEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgIm5hbWUiOiAicmVmZXJlbmNlcy9jb252ZW50aW9ucy5tZCIsCiAgICAgICAgImRpZ2VzdCI6ICIxMjU5ZDAzMzFiNWU5ZTdlMjI5OWJmMjg4Y2U3MTM3Yzk3YzI5N2YxNjU0NzAwYTM1NjE4OTNiYjMxYmY5YzZlIgogICAgICB9LAogICAgICB7CiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogInJlZmVyZW5jZXMvZmlyc3RfdGltZV9zZXR1cC5tZCIsCiAgICAgICAgImRpZ2VzdCI6ICJlNWU1MDUxNzVmZTJmNjNlMTE0YmU3ZmUxOTkyN2I4NDIwZGM1ODdmM2Y2YTEyNjgxNmFmNWE2MDhmZDc2MzEzIgogICAgICB9LAogICAgICB7CiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogInJlZmVyZW5jZXMvcHl0aG9uX2JpbmRpbmdzLm1kIiwKICAgICAgICAiZGlnZXN0IjogIjZhNDM2MzgwMTdkMzU5MmUyNWI3YzY0YTBiNmFiZDAyNDQ2Y2NkZDI0MmI4YTRmZGQ3MmJkMDJiNGRiZjIyOTQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgIm5hbWUiOiAicmVmZXJlbmNlcy90cm91Ymxlc2hvb3RpbmcubWQiLAogICAgICAgICJkaWdlc3QiOiAiOTJhZDZiZDFhMmM2NjhjMjhiYzZmNTBjY2M2NDlhNmE5NWE4YjcwODYxNThiZTBkNjg5MmJlOTU3MTdlM2E1NyIKICAgICAgfSwKICAgICAgewogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAibmFtZSI6ICJyZWZlcmVuY2VzL3ZycF9za2lsbHMubWQiLAogICAgICAgICJkaWdlc3QiOiAiOTlhMGZkZmY2YjQ2NDhiZmIwYmUyNmQ2ZTM3OWQ1MzlmMmJkMThmN2YzYzBkYWM5OGIxODI2MDNiYTliYThhZCIKICAgICAgfSwKICAgICAgewogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAibmFtZSI6ICJyZXNvdXJjZXMvbnVtZXJpY2FsX2RlYnVnZ2luZy5tZCIsCiAgICAgICAgImRpZ2VzdCI6ICJkNTQ5NjFlZmY3Mjk4NTBjM2UxNzgwNjJmN2Y2NGU1MzJhOWM4OTUxMjNjZTFkYTFmNzYyNzU3NGY2MjMyNjgxIgogICAgICB9LAogICAgICB7CiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogInNraWxsLWNhcmQubWQiLAogICAgICAgICJkaWdlc3QiOiAiMzJkMTVlNWFkM2Y1NDk4NzdkZDJkMzY3MzBlNjgwNzk3ZTcwNTEyYmI5YzIwOTUzZGMyZWU3MTFiZDE1YTA1MiIKICAgICAgfQogICAgXQogIH0KfQ==","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGUCMQCBBNocNrC4WzFneNrCWlxmZIddPgfFW1jh9QHUh+ykqCWSqybiUzMIUyygnBTwtUwCMExvoWFMjXEztVVPEyCYM+K/R7/zI05sMwJEJM9+rK72SIk/iTsVMOAeJ+R9gIoqQg==","keyid":""}]}}
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"x509CertificateChain":{"certificates":[{"rawBytes":"MIICgzCCAgmgAwIBAgIUKIyS7SxNteQIiWzK1dWj85E6520wCgYIKoZIzj0EAwMwVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwHhcNMjYwNDAxMDAwMDAwWhcNMjgwNDIyMTUzMzA5WjBUMQswCQYDVQQGEwJVUzEbMBkGA1UECgwSTlZJRElBIENvcnBvcmF0aW9uMSgwJgYDVQQDDB9OVklESUEgQWdlbnQgU2tpbGxzIFNpZ25pbmcgMDAxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEYoRM9bQl/dGlwSRNi6bTpIJUXH8Nv9GciP6LSflJYYMLCc296kpyuTSsk5ddbAWiDcFX3C/ydX3jwc+qCLYP6uHy9XphyLjOQ27Yb2J6rBLVtRBS1mgGco/Gr7fL6ODco4GaMIGXMB0GA1UdDgQWBBRQ/5ZW3nJ6lmo9SVk7I15o7UGmpTAfBgNVHSMEGDAWgBRPGpILxMBBleJSsBGjrMKsby1CgjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLm5kaXMubnZpZGlhLmNvbTAKBggqhkjOPQQDAwNoADBlAjAUygu/GiOCIXrgGr4SmLgeEVDcEitfFUv7ALbvLVGVyMysB3mxmO/uInZfXzWcJZsCMQDxuoxj4ZmO30jhkPIcCxGFCOvnUsnfU3TfGcouYm4M6iRpbKvtVnHPiy4bi6pcKf0="},{"rawBytes":"MIICiDCCAg6gAwIBAgIUZsIuSv9NkpJCNqtYEfCouVv5BzowCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASI72cR3ctKGg4VWnB3bNja6g1Z2PnOmFEopkPof+QeIcPk9rT+g9MjJnq51EQXL93a7C2GJ9J985G4o2V85VD7wJ1RaXhluHW2rf3y8bQGeAYaKMr5s/hUgn+M3/9WlWejgaAwgZ0wHQYDVR0OBBYEFE8akgvEwEGV4lKwEaOswqxvLUKCMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AubmRpcy5udmlkaWEuY29tMAoGCCqGSM49BAMDA2gAMGUCMQCeIMMfAbyzPDacw2MxG+Yt1cikrJX/DVxiGfXuHmkkXn6VgSzE79+lkqDErpVO2gYCMCNEColOyvUvkzZGUEI1hQ3PfMgi3FIo9tHoBKMw4/wGBLFpu/0ubtmbBXM6/UMOEw=="},{"rawBytes":"MIICRTCCAcygAwIBAgIUeJdY3rV86EdvFmG7L8LJBsyQFYkwCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABAYpiXCDjJ9NT2eSDhyHJVSw1Tbze18cGG2F/578oWvHxg23eQAhNRYdq88i1iOshZSO6C29doKui5Xpmo/7Ctw9Sx4PP2RzOmIuOLCuTdNtKcTRwi4GEsd5BAFvWj42M6NjMGEwHQYDVR0OBBYEFItnoAjjfuCEUvzyvWyI2vOGvwPjMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMCwtAjWLaNwgGWNCgdyNoTyvNhqWRECRJV2r3+7w8g0PL6NHLOsbkgE09BH95h8XlgIwTaQmbbUh2ChAJ5TA1wRiVDnCcvbzHlZl2jM2FcwQQZlk19LOAbyGMRixbu2Ww/rj"}]},"tlogEntries":[]},"dsseEnvelope":{"payload":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAiY3VvcHQtZGV2ZWxvcGVyIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjQ2NTE3YzQyNjNlN2E0NTNmYjI3NWIwOGU0ZWE3YjY1NjQxY2FjNTJiYmMwYmE3ZThkZDBiZTdmMWQ3MWZhM2UiCiAgICAgIH0KICAgIH0KICBdLAogICJwcmVkaWNhdGVUeXBlIjogImh0dHBzOi8vbW9kZWxfc2lnbmluZy9zaWduYXR1cmUvdjEuMCIsCiAgInByZWRpY2F0ZSI6IHsKICAgICJyZXNvdXJjZXMiOiBbCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogIjcwYjFkOGU3NzQxMWI1ZjA3ZjJiZWIzZTE2MDU2MTQ4NzY3MjM4MzJkNzU2ZmZlMjQ4ZjE5MDBhY2Q5MTY4YjYiLAogICAgICAgICJuYW1lIjogIkJFTkNITUFSSy5tZCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogIjRkNWQ4MGUyYWNkMWM2YWM5MjZlMzJiMmQ0NGEwNjA5ZTgyZTJjYzdmYjFiMmY3ZDNlNjRjMzk1MjdhNjYzMmEiLAogICAgICAgICJuYW1lIjogIlNLSUxMLm1kIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiMjFkNDVkY2QyMzNhMGMxOGM3NmI1MzIyOTAzMTY4ZGRmZWNjYWU5OWZjMWExMDliYTk2MDU3MDhlMTJhNDc5OSIsCiAgICAgICAgIm5hbWUiOiAiYmVuY2htYXJrL2V2YWxzLmpzb24iLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICIwYWE3MWEzOTU3NzE1MWI1NzRkNjA4ODUzOTc1OWJiM2UyNjM3ZTNjOTE2ZjFmZjNiMmFiNzE1MzdkMGU4MmZiIiwKICAgICAgICAibmFtZSI6ICJldmFscy9ldmFscy5qc29uIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiMDZiNTFlMmJlNzgyMzdkMzIxNzRmYmE3MDhmZGRlZjczMjBiNWM1Mzc1MDE4NTUzZjRjOTkzM2VhNTUzOTM4YSIsCiAgICAgICAgIm5hbWUiOiAicmVmZXJlbmNlcy9idWlsZF9hbmRfdGVzdC5tZCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogImNhMmMwYWJkNjZlZmZjMGIzNjk1MmZiNzRlYmZiOWZmOWQzYmM5N2E5ZDUwNWQ3ZTI1YTA1M2VkOWEwMjg0NTEiLAogICAgICAgICJuYW1lIjogInJlZmVyZW5jZXMvY29udHJpYnV0aW5nLm1kIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiMTI1OWQwMzMxYjVlOWU3ZTIyOTliZjI4OGNlNzEzN2M5N2MyOTdmMTY1NDcwMGEzNTYxODkzYmIzMWJmOWM2ZSIsCiAgICAgICAgIm5hbWUiOiAicmVmZXJlbmNlcy9jb252ZW50aW9ucy5tZCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogImU1ZTUwNTE3NWZlMmY2M2UxMTRiZTdmZTE5OTI3Yjg0MjBkYzU4N2YzZjZhMTI2ODE2YWY1YTYwOGZkNzYzMTMiLAogICAgICAgICJuYW1lIjogInJlZmVyZW5jZXMvZmlyc3RfdGltZV9zZXR1cC5tZCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogIjZhNDM2MzgwMTdkMzU5MmUyNWI3YzY0YTBiNmFiZDAyNDQ2Y2NkZDI0MmI4YTRmZGQ3MmJkMDJiNGRiZjIyOTQiLAogICAgICAgICJuYW1lIjogInJlZmVyZW5jZXMvcHl0aG9uX2JpbmRpbmdzLm1kIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiOTJhZDZiZDFhMmM2NjhjMjhiYzZmNTBjY2M2NDlhNmE5NWE4YjcwODYxNThiZTBkNjg5MmJlOTU3MTdlM2E1NyIsCiAgICAgICAgIm5hbWUiOiAicmVmZXJlbmNlcy90cm91Ymxlc2hvb3RpbmcubWQiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICI5OWEwZmRmZjZiNDY0OGJmYjBiZTI2ZDZlMzc5ZDUzOWYyYmQxOGY3ZjNjMGRhYzk4YjE4MjYwM2JhOWJhOGFkIiwKICAgICAgICAibmFtZSI6ICJyZWZlcmVuY2VzL3ZycF9za2lsbHMubWQiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICJkNTQ5NjFlZmY3Mjk4NTBjM2UxNzgwNjJmN2Y2NGU1MzJhOWM4OTUxMjNjZTFkYTFmNzYyNzU3NGY2MjMyNjgxIiwKICAgICAgICAibmFtZSI6ICJyZXNvdXJjZXMvbnVtZXJpY2FsX2RlYnVnZ2luZy5tZCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogIjA0YjkyMTVhZGQ5OTMwZmU2MmZiOGViYjc2ZTBhMDk2MTdhMjMzNWEzZjE5ZDJlMjA3ZWViYmQwOWNmYTIwMTIiLAogICAgICAgICJuYW1lIjogInNraWxsLWNhcmQubWQiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9CiAgICBdLAogICAgInNlcmlhbGl6YXRpb24iOiB7CiAgICAgICJtZXRob2QiOiAiZmlsZXMiLAogICAgICAiaWdub3JlX3BhdGhzIjogWwogICAgICAgICIuZ2l0YXR0cmlidXRlcyIsCiAgICAgICAgIi5naXRpZ25vcmUiLAogICAgICAgICIuZ2l0aHViIiwKICAgICAgICAiLmdpdCIKICAgICAgXSwKICAgICAgImhhc2hfdHlwZSI6ICJzaGEyNTYiLAogICAgICAiYWxsb3dfc3ltbGlua3MiOiBmYWxzZQogICAgfQogIH0KfQ==","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGUCMQCWXYiyGETmca5/9e+PWKyj0Pv8WtXXLQ+1N4yvGHkLMHlMqm67ATwAXwkCoIxsJEMCMEEhdmimxfRrsotNW7ECDPyBs1ItxczE8J4mqUDTyWDjAHDmQ1nFfGdktWRnaGf+vg==","keyid":""}]}}