ranarag commited on
Commit
216da2d
·
verified ·
1 Parent(s): 849237f

model card upload

Browse files
Files changed (2) hide show
  1. README.md +258 -3
  2. model.sig +1 -1
README.md CHANGED
@@ -1,3 +1,258 @@
1
- ---
2
- license: apache-2.0
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ library_name: transformers
4
+ tags:
5
+ - language
6
+ - granite-4.0
7
+ ---
8
+
9
+ # Granite-4.0-H-Micro-Base
10
+
11
+ **Model Summary:**
12
+ Granite-4.0-H-Micro-Base is a decoder-only, long-context language model designed for a wide range of text-to-text generation tasks. It also supports Fill-in-the-Middle (FIM) code completion through the use of specialized prefix and suffix tokens. The model is trained from scratch on approximately 18 trillion tokens following a four-stage training strategy: 10 trillion tokens in the first stage, 5 trillion in the second, 2 trillion in the third, and 0.5 trillion in the final stage.
13
+
14
+ - **Developers:** Granite Team, IBM
15
+ - **HF Collection:** [Granite 4.0 Language Models HF Collection](https://huggingface.co/collections/ibm-granite/granite-40-language-models-6811a18b820ef362d9e5a82c)
16
+ - **GitHub Repository:** [ibm-granite/granite-4.0-language-models](https://github.com/ibm-granite/granite-4.0-language-models)
17
+ - **Website**: [Granite Docs](https://www.ibm.com/granite/docs/)
18
+ - **Release Date**: October 2nd, 2025
19
+ - **License:** [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0)
20
+
21
+ **Supported Languages:**
22
+ English, German, Spanish, French, Japanese, Portuguese, Arabic, Czech, Italian, Korean, Dutch, and Chinese. Users may finetune Granite 4.0 models for languages beyond these languages.
23
+
24
+ **Intended Use:**
25
+ Prominent use cases of LLMs in text-to-text generation include summarization, text classification, extraction, question-answering, code-completion (including FIM), and long-context generation tasks. All Granite Base models are able to handle these tasks as they were trained on a large amount of data from various domains. Moreover, they can serve as baseline to create specialized models for specific application scenarios.
26
+
27
+ **Generation:**
28
+ This is a simple example of how to use Granite-4.0-H-Micro-Base model.
29
+
30
+ Install the following libraries:
31
+
32
+ ```shell
33
+ pip install torch torchvision torchaudio
34
+ pip install accelerate
35
+ pip install transformers
36
+ ```
37
+ Then, copy the code snippet below to run the example.
38
+
39
+ ```python
40
+ from transformers import AutoModelForCausalLM, AutoTokenizer
41
+ device = "cuda"
42
+
43
+ model_path = "ibm-granite/granite-4.0-h-micro-base"
44
+
45
+ tokenizer = AutoTokenizer.from_pretrained(model_path)
46
+ # drop device_map if running on CPU
47
+ model = AutoModelForCausalLM.from_pretrained(model_path, device_map=device)
48
+ model.eval()
49
+ # change input text as desired
50
+ input_text = "The capital of France is"
51
+ # tokenize the text
52
+ input_tokens = tokenizer(input_text, return_tensors="pt").to(device)
53
+ # generate output tokens
54
+ output = model.generate(**input_tokens, max_length=10)
55
+ # decode output tokens into text
56
+ output = tokenizer.batch_decode(output)
57
+ # print output
58
+ print(output[0])
59
+ ```
60
+
61
+ Expected output:
62
+ ```shell
63
+ The capital of France is Paris.
64
+ ```
65
+
66
+ **Evaluation Results:**
67
+ *Coming soon*
68
+
69
+ **Model Architecture:**
70
+ Granite-4.0-H-Micro-Base is based on a decoder-only dense transformer architecture. Core components of this architecture are: GQA, Mamba2, MLP with SwiGLU, RMSNorm, and shared input/output embeddings.
71
+
72
+ <table>
73
+ <thead>
74
+ <tr>
75
+ <th style="text-align:left; background-color: #001d6c; color: white;">Model</th>
76
+ <th style="text-align:center; background-color: #001d6c; color: white;">Micro Dense</th>
77
+ <th style="text-align:center; background-color: #001d6c; color: white;">H Micro Dense</th>
78
+ <th style="text-align:center; background-color: #001d6c; color: white;">H Tiny MoE</th>
79
+ <th style="text-align:center; background-color: #001d6c; color: white;">H Small MoE</th>
80
+ </tr></thead>
81
+ <tbody>
82
+ <tr>
83
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">Embedding size</td>
84
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">2560</td>
85
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">2048</td>
86
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">1536</td>
87
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">4096</td>
88
+ </tr>
89
+ <tr>
90
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">Number of layers</td>
91
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">40 attention</td>
92
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">4 attention / 36 Mamba2</td>
93
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">4 attention / 36 Mamba2</td>
94
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">4 attention / 36 Mamba2</td>
95
+ </tr>
96
+ <tr>
97
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">Attention head size</td>
98
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">64</td>
99
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">64</td>
100
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">128</td>
101
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">128</td>
102
+ </tr>
103
+ <tr>
104
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">Number of attention heads</td>
105
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">40</td>
106
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">32</td>
107
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">12</td>
108
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">32</td>
109
+ </tr>
110
+ <tr>
111
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">Number of KV heads</td>
112
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">8</td>
113
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">8</td>
114
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">4</td>
115
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">8</td>
116
+ </tr>
117
+ <tr>
118
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">Mamba2 state size</td>
119
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">-</td>
120
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">128</td>
121
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">128</td>
122
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">128</td>
123
+ </tr>
124
+ <tr>
125
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">Number of Mamba2 heads</td>
126
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">-</td>
127
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">64</td>
128
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">48</td>
129
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">128</td>
130
+ </tr>
131
+
132
+ <tr>
133
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">MLP / Shared expert hidden size</td>
134
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">8192</td>
135
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">8192</td>
136
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">1024</td>
137
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">1536</td>
138
+ </tr>
139
+
140
+
141
+ <tr>
142
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">Num. Experts</td>
143
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">-</td>
144
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">-</td>
145
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">64</td>
146
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">72</td>
147
+ </tr>
148
+ <tr>
149
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">Num. active Experts</td>
150
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">-</td>
151
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">-</td>
152
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">6</td>
153
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">10</td>
154
+ </tr>
155
+ <tr>
156
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">Expert hidden size</td>
157
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">-</td>
158
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">-</td>
159
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">512</td>
160
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">768</td>
161
+ </tr>
162
+
163
+ <tr>
164
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">MLP activation</td>
165
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">SwiGLU</td>
166
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">SwiGLU</td>
167
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">SwiGLU</td>
168
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">SwiGLU</td>
169
+ </tr>
170
+
171
+ <tr>
172
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">Sequence length</td>
173
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">128K</td>
174
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">128K</td>
175
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">128K</td>
176
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">128K</td>
177
+ </tr>
178
+ <tr>
179
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">Position embedding</td>
180
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">RoPE</td>
181
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">NoPE</td>
182
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">NoPE</td>
183
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">NoPE</td>
184
+ </tr>
185
+ <tr>
186
+ <td style="text-align:left; background-color: #FFFFFF; color: black;"># Parameters</td>
187
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">3B</td>
188
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">3B</td>
189
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">7B</td>
190
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">32B</td>
191
+ </tr>
192
+ <tr>
193
+ <td style="text-align:left; background-color: #FFFFFF; color: black;"># Active parameters</td>
194
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">3B</td>
195
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">3B</td>
196
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">2B</td>
197
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">9B</td>
198
+ </tr>
199
+ </tbody></table>
200
+
201
+
202
+ **Training Data:** This model is trained on a mix of open source and proprietary data following a four-stage training strategy.
203
+
204
+ <table>
205
+ <thead>
206
+ <tr>
207
+ <th style="text-align:left; background-color: #001d6c; color: white;">Stage</th>
208
+ <th style="text-align:left; background-color: #001d6c; color: white;">Characteristics</th>
209
+ <th style="text-align:center; background-color: #001d6c; color: white;">Micro Dense</th>
210
+ <th style="text-align:center; background-color: #001d6c; color: white;">H Micro Dense</th>
211
+ <th style="text-align:center; background-color: #001d6c; color: white;">H Tiny MoE</th>
212
+ <th style="text-align:center; background-color: #001d6c; color: white;">H Small MoE</th>
213
+ </tr></thead>
214
+ <tbody>
215
+ <tr>
216
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">I</td>
217
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">General mixture of training data, warmup, and power scheduler for learning rate.</td>
218
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">10</td>
219
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">10</td>
220
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">15</td>
221
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">15</td>
222
+ </tr>
223
+ <tr>
224
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">II</td>
225
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">General mixture of training data with higher mixture of code, and power scheduler for learning rate.</td>
226
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">2</td>
227
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">5</td>
228
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">5</td>
229
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">5</td>
230
+ </tr>
231
+ <tr>
232
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">III</td>
233
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">High quality training data, exponential decay of learning rate.</td>
234
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">2</td>
235
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">2</td>
236
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">2</td>
237
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">2</td>
238
+ </tr>
239
+ <tr>
240
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">IV</td>
241
+ <td style="text-align:left; background-color: #FFFFFF; color: black;">High quality training data, linear decay to zero for learning rate.</td>
242
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">0.5</td>
243
+ <td style="text-align:center; background-color: #DAE8FF; color: black;">0.5</td>
244
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">0.5</td>
245
+ <td style="text-align:center; background-color: #FFFFFF; color: black;">0.5</td>
246
+ </tr>
247
+ </tbody></table>
248
+
249
+ **Infrastructure:**
250
+ We trained the Granite 4.0 Language Models utilizing an NVIDIA GB200 NVL72 cluster hosted in CoreWeave. Intra-rack communication occurs via the 72-GPU NVLink domain, and a non-blocking, full Fat-Tree NDR 400 Gb/s InfiniBand network provides inter-rack communication. This cluster provides a scalable and efficient infrastructure for training our models over thousands of GPUs.
251
+
252
+ **Ethical Considerations and Limitations:**
253
+ The use of Large Language Models involves risks and ethical considerations people must be aware of, including but not limited to: bias and fairness, misinformation, and autonomous decision-making. Granite-4.0-H-Micro-Base model is not the exception in this regard. Even though this model is suited for multiple generative AI tasks, it has not undergone any safety alignment, there it may produce problematic outputs. Additionally, it remains uncertain whether smaller models might exhibit increased susceptibility to hallucination in generation scenarios by copying text verbatim from the training dataset due to their reduced sizes and memorization capacities. This aspect is currently an active area of research, and we anticipate more rigorous exploration, comprehension, and mitigations in this domain. Regarding ethics, a latent risk associated with all Large Language Models is their malicious utilization. We urge the community to use Granite-4.0-H-Micro-Base model with ethical intentions and in a responsible way.
254
+
255
+ **Resources**
256
+ - ⭐️ Learn about the latest updates with Granite: https://www.ibm.com/granite
257
+ - 📄 Get started with tutorials, best practices, and prompt engineering advice: https://www.ibm.com/granite/docs/
258
+ - 💡 Learn about the latest Granite learning resources: https://github.com/ibm-granite-community/
model.sig CHANGED
@@ -1 +1 @@
1
- {"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIIC5TCCAmugAwIBAgIUbyUIq+TtJ7+2WkXl0iJ/qPU/5AYwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjUwOTIyMTEyMjU1WhcNMjUwOTIyMTEzMjU1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECyjj4kxyxX+dUxIcC5RuWadpAmJJbE4r4XfDyT7ZZ5VTirwEOt2QM05IBhm8dmpm6aPCGoEmLsIahHkcn8BZlKOCAYowggGGMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUewebMBySLqtsQtfutVtISj/PtsswHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wJAYDVR0RAQH/BBowGIEWR3Jhbml0ZS12ZXJpZnlAaWJtLmNvbTA0BgorBgEEAYO/MAEBBCZodHRwczovL3NpZ3N0b3JlLnZlcmlmeS5pYm0uY29tL29hdXRoMjA2BgorBgEEAYO/MAEIBCgMJmh0dHBzOi8vc2lnc3RvcmUudmVyaWZ5LmlibS5jb20vb2F1dGgyMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGZcSmY7wAABAMARzBFAiB2nY0ZGRv/JSLGFxXeePF9vOwuTB8DePcaEYcL2VclvgIhAMhx+xUWesuFC1Q5KphQQBQgRTFCi42H8CD3Ktid1GKJMAoGCCqGSM49BAMDA2gAMGUCMQCfHJGWxbDgZjzPc1jG7erR51Pex8KWMqc/12A0WrN3M3MQUp3H48YGQayhYncFrhYCMEabEEgcsvF1OkJHqUZYsHn2QL7+khW4lFVlTEihDyRH+7qDejNxvSI7WWD/IdWAlw=="}, "tlogEntries": [{"logIndex": "545483017", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "dsse", "version": "0.0.1"}, "integratedTime": "1758540175", "inclusionPromise": {"signedEntryTimestamp": "MEUCIH05BQDQtSNMQu+dC/KO44+30T8YEyZAbg9eLyaRC2HDAiEA0wJJAyHMugcg5YbKY7NZ4ncC3BxbG8d2Yv4VZRPVeqE="}, "inclusionProof": {"logIndex": "423578755", "rootHash": "1RqQK0O3tv/PVaWHd+SZxyMu1Pnw6KZGifGt9C9t5+s=", "treeSize": "423578759", "hashes": ["ki7jPY9yx+r9AEMPg0n8YY6OX4cOQd8bPh56MwQ2ahw=", "Zy5kc99wH5DZidJKfs9UVth5vROqgLWGXYBoLWVGF20=", "KP/mYBvHHgE1j++F07EkAgOzQFu7H1xUPXnPYKywxo4=", "jngOlSFeqEHZkgHYBbvb8s52L5g7R6pKIuS19b4W+m0=", "Yg1K1zKbLuh7zkB9Oxd82XEak8qs7pamSYUceeoaEEw=", "HI+fPzx3aoxewr88RJypht6rCTJpt1WJ6U+0R/+dMK8=", "n6NUmUEwWQYvugSlwJsZe5wOn1gw3JmjS0ZQaGSltYg=", "1vS/00hbOTJ3heYZq20BDIPx4nPbf/Por7tpCT8UXW4=", "9u9OTSyj4asXRH3Y745tvCNR9pdVqkDsRMLMfb3mBSo=", "cyVL5e3kVYJcNDYZJOR+4P2qHQfN06gdNpNZmbdub3w=", "dmLfZXwB/j/R//im2zDb0MIkl0JRXsiZ3elHeagb7SI=", "SSVfltYSWmchaPYZxhSF4nU5lLNCbc8IL5vyvDeyMUo=", "pgVI1ynvGL4PQQaoRZ9e2Gfo4FJnZnCnLbkLmrsyvpY=", "rO8wDSOjmY8VkspFqYaJS4TV5HxywICMlHM8gTxXkAA=", "1mfy94KpcItqshH9+gwqV6jccupcaMpVsF28New8zDY=", "vS7O4ozHIQZJWBiov+mkpI27GE8zAmVCEkRcP3NDyNE="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n423578759\n1RqQK0O3tv/PVaWHd+SZxyMu1Pnw6KZGifGt9C9t5+s=\n\n\u2014 rekor.sigstore.dev wNI9ajBGAiEA8yVV41D40Xk5Jx+zzLLNId9Sa2EPA10LUFrAweMHgOkCIQC6C3hMMq2JOZqPSP8FTBtyMY2tBlRW8uI0lc3wzRXVeQ==\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiZHNzZSIsInNwZWMiOnsiZW52ZWxvcGVIYXNoIjp7ImFsZ29yaXRobSI6InNoYTI1NiIsInZhbHVlIjoiZDA2ZjZmNjYyNjJkY2ZjZTM3M2Q0MjVmYzRiYzRlMDU3OGU3YjA5OGYzYzQ5NmM2MzkxYTE5ODkyNTcyOTA2YSJ9LCJwYXlsb2FkSGFzaCI6eyJhbGdvcml0aG0iOiJzaGEyNTYiLCJ2YWx1ZSI6IjY2N2IzN2VmZTJlMDM5Y2FlZTkxZDVjZmUwYzM2M2VhNjI3NmJjNGFlMzQ2NzBmOTczYmZjMmYyNjI3YTMxZWMifSwic2lnbmF0dXJlcyI6W3sic2lnbmF0dXJlIjoiTUVVQ0lRQ1M2TUhsSXJHQ0sxRHZtbWxKZmZzOWlveHRxTTZOb0I1a2RCNTVZVGM4WGdJZ09vT1F4YkdJSTBrU1BGMFQyN1cxanVyTHdiQXQ1aDdRZzdSNi9ZTjNJV1U9IiwidmVyaWZpZXIiOiJMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VNMVZFTkRRVzExWjBGM1NVSkJaMGxWWW5sVlNYRXJWSFJLTnlzeVYydFliREJwU2k5eFVGVXZOVUZaZDBObldVbExiMXBKZW1vd1JVRjNUWGNLVG5wRlZrMUNUVWRCTVZWRlEyaE5UV015Ykc1ak0xSjJZMjFWZFZwSFZqSk5ValIzU0VGWlJGWlJVVVJGZUZaNllWZGtlbVJIT1hsYVV6RndZbTVTYkFwamJURnNXa2RzYUdSSFZYZElhR05PVFdwVmQwOVVTWGxOVkVWNVRXcFZNVmRvWTA1TmFsVjNUMVJKZVUxVVJYcE5hbFV4VjJwQlFVMUdhM2RGZDFsSUNrdHZXa2w2YWpCRFFWRlpTVXR2V2tsNmFqQkVRVkZqUkZGblFVVkRlV3BxTkd0NGVYaFlLMlJWZUVsalF6VlNkVmRoWkhCQmJVcEtZa1UwY2pSWVprUUtlVlEzV2xvMVZsUnBjbmRGVDNReVVVMHdOVWxDYUcwNFpHMXdiVFpoVUVOSGIwVnRUSE5KWVdoSWEyTnVPRUphYkV0UFEwRlpiM2RuWjBkSFRVRTBSd3BCTVZWa1JIZEZRaTkzVVVWQmQwbElaMFJCVkVKblRsWklVMVZGUkVSQlMwSm5aM0pDWjBWR1FsRmpSRUY2UVdSQ1owNVdTRkUwUlVablVWVmxkMlZpQ2sxQ2VWTk1jWFJ6VVhSbWRYUldkRWxUYWk5UWRITnpkMGgzV1VSV1VqQnFRa0puZDBadlFWVXpPVkJ3ZWpGWmEwVmFZalZ4VG1wd1MwWlhhWGhwTkZrS1drUTRkMHBCV1VSV1VqQlNRVkZJTDBKQ2IzZEhTVVZYVWpOS2FHSnRiREJhVXpFeVdsaEtjRnB1YkVGaFYwcDBURzFPZG1KVVFUQkNaMjl5UW1kRlJRcEJXVTh2VFVGRlFrSkRXbTlrU0ZKM1kzcHZka3d6VG5CYU0wNHdZak5LYkV4dVdteGpiV3h0WlZNMWNGbHRNSFZaTWpsMFRESTVhR1JZVW05TmFrRXlDa0puYjNKQ1owVkZRVmxQTDAxQlJVbENRMmROU20xb01HUklRbnBQYVRoMll6SnNibU16VW5aamJWVjFaRzFXZVdGWFdqVk1iV3hwWWxNMWFtSXlNSFlLWWpKR01XUkhaM2xOU1VkTFFtZHZja0puUlVWQlpGbzFRV2RSUTBKSWQwVmxaMEkwUVVoWlFUTlVNSGRoYzJKSVJWUktha2RTTkdOdFYyTXpRWEZLU3dwWWNtcGxVRXN6TDJnMGNIbG5Remh3TjI4MFFVRkJSMXBqVTIxWk4zZEJRVUpCVFVGU2VrSkdRV2xDTW01Wk1GcEhVbll2U2xOTVIwWjRXR1ZsVUVZNUNuWlBkM1ZVUWpoRVpWQmpZVVZaWTB3eVZtTnNkbWRKYUVGTmFIZ3JlRlZYWlhOMVJrTXhVVFZMY0doUlVVSlJaMUpVUmtOcE5ESklPRU5FTTB0MGFXUUtNVWRMU2sxQmIwZERRM0ZIVTAwME9VSkJUVVJCTW1kQlRVZFZRMDFSUTJaSVNrZFhlR0pFWjFwcWVsQmpNV3BITjJWeVVqVXhVR1Y0T0V0WFRYRmpMd294TWtFd1YzSk9NMDB6VFZGVmNETklORGhaUjFGaGVXaFpibU5HY21oWlEwMUZZV0pGUldkamMzWkdNVTlyU2toeFZWcFpjMGh1TWxGTU55dHJhRmMwQ214R1ZteFVSV2xvUkhsU1NDczNjVVJsYWs1NGRsTkpOMWRYUkM5SlpGZEJiSGM5UFFvdExTMHRMVVZPUkNCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2c9PSJ9XX19"}], "timestampVerificationData": {}}, "dsseEnvelope": {"payload": "ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAiZ3Jhbml0ZS00LjAtaC1taWNyby1iYXNlIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjU4OGYwZWZkNDc1NjM4NjUyNjgwMzY4MWJmODZjN2VmMGE1Y2U0ZmUzZWYxOGRmZjFiZjEzNWMxODRmZjAwMWUiCiAgICAgIH0KICAgIH0KICBdLAogICJwcmVkaWNhdGVUeXBlIjogImh0dHBzOi8vbW9kZWxfc2lnbmluZy9zaWduYXR1cmUvdjEuMCIsCiAgInByZWRpY2F0ZSI6IHsKICAgICJyZXNvdXJjZXMiOiBbCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogImJkODI4YjAwZWRjYzI1ZjkzZDZmYTU1MjEwYWNlYmNkMDU4MDU0YzRkNWI1ZmE2YzUxNDZiMGEwZDE4MTcyZWUiLAogICAgICAgICJuYW1lIjogImNvbmZpZy5qc29uIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiN2MwNGNiOWQyYmE3NzFmNzUyOGZiYTVhNzEwNDk5OWNkYWY3NTY2ZDAyYjVmYmQ1ODQ3MjgyOWY2MjcxNjE3NyIsCiAgICAgICAgIm5hbWUiOiAiZ2VuZXJhdGlvbl9jb25maWcuanNvbiIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogImI2ZmU0MjRlMzM0OTAzZjdmYjg0ZDNhMTA2ZDk3MzA0NTVmNDc0NGI5ZmUzYzIxZWUxMzZkOTdhMDBlNzI1MDIiLAogICAgICAgICJuYW1lIjogIm1lcmdlcy50eHQiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICIwOTczNjBmYzAwYTQ5MzYxOTJjZWQyOTc3NjYyYmYyOWRiMmRiZGQ5ODM5MjdmOTkwZGI2ZTNkZDhiMTllZmFjIiwKICAgICAgICAibmFtZSI6ICJtb2RlbC0wMDAwMS1vZi0wMDAwMi5zYWZldGVuc29ycyIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogIjBkM2U4NDllNmY3MzdjNTc2M2IzNzdmZjU0Y2I2NjRhYTZhNzUxN2U1ZWYxYTRhYjQ3ZmM1ZDM2YmQ4Y2FlMWUiLAogICAgICAgICJuYW1lIjogIm1vZGVsLTAwMDAyLW9mLTAwMDAyLnNhZmV0ZW5zb3JzIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiYTA3NGQxZGQ3MDlhMTk4M2VkYmIxNTA4NjNmODQzNWRkOTNkMmE4ZDQ1MmVjZmE3OWNlY2U5ZTEwNGE0MDhkZCIsCiAgICAgICAgIm5hbWUiOiAibW9kZWwuc2FmZXRlbnNvcnMuaW5kZXguanNvbiIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogImMwODY3NmM0OWZkNzk2OWEzMTMwZjcyYmU2ZDRiZjM0ZGE2NmFhNDg0YTZlMjFkZmZlMzU5ODkzYTFiZDVmMmUiLAogICAgICAgICJuYW1lIjogInNwZWNpYWxfdG9rZW5zX21hcC5qc29uIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiZTJiYWQ2NjQzOTUzOGNiNGQ1YTc1ODA2ODA5MzI0MzJlZDllY2U5ZDNiODU3N2U2NzU1MTJiZGYxMTU5OTI1MyIsCiAgICAgICAgIm5hbWUiOiAidG9rZW5pemVyLmpzb24iLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICJhNWVjNWRhYWIxMmJhMDkwYTkwZjNkZDE2OWM4ZjljMjc1NTU3MDEzYTg3YjljMTI1OGRjN2NiNDk3YTM1Yzg2IiwKICAgICAgICAibmFtZSI6ICJ0b2tlbml6ZXJfY29uZmlnLmpzb24iLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICI4YWY3MTA3NmRlOGIwYjYyNmVlZDBmNGM5ODRmYWYwYTdjMDYyNDc5MTY0YjJhMzEzMDhhOTQ4NTI0ZDRmNjljIiwKICAgICAgICAibmFtZSI6ICJ2b2NhYi5qc29uIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfQogICAgXSwKICAgICJzZXJpYWxpemF0aW9uIjogewogICAgICAiYWxsb3dfc3ltbGlua3MiOiBmYWxzZSwKICAgICAgImhhc2hfdHlwZSI6ICJzaGEyNTYiLAogICAgICAibWV0aG9kIjogImZpbGVzIgogICAgfQogIH0KfQ==", "payloadType": "application/vnd.in-toto+json", "signatures": [{"sig": "MEUCIQCS6MHlIrGCK1DvmmlJffs9ioxtqM6NoB5kdB55YTc8XgIgOoOQxbGII0kSPF0T27W1jurLwbAt5h7Qg7R6/YN3IWU="}]}}
 
1
+ {"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIIC5TCCAmugAwIBAgIULRM0UvPXvvGqXndIJTqin8QQnkMwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjUwOTI0MTY1NDQ0WhcNMjUwOTI0MTcwNDQ0WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0r3XIsJmeHy4DZRwmX6fWLLEFQkt09RN5Ig/cXhaERyzaRhvrje8wNl6di/FGRRQVL33ljJiYe0KubwCM8bczaOCAYowggGGMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU7gjBX615d2aOqJCSHNg4NX++GLMwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wJAYDVR0RAQH/BBowGIEWR3Jhbml0ZS12ZXJpZnlAaWJtLmNvbTA0BgorBgEEAYO/MAEBBCZodHRwczovL3NpZ3N0b3JlLnZlcmlmeS5pYm0uY29tL29hdXRoMjA2BgorBgEEAYO/MAEIBCgMJmh0dHBzOi8vc2lnc3RvcmUudmVyaWZ5LmlibS5jb20vb2F1dGgyMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGZfKYcBQAABAMARzBFAiEA4FjoUCZM+kU5cznZsj1qvLUq6k1dOXUxJfYPpAxmI3wCICSqy6aTwP3Y7omm2FTCPfBmmsviPPzfxWxC9ozjJrq8MAoGCCqGSM49BAMDA2gAMGUCMQDPeiphd2+BhLcz9Udb2mOkvLha3+gzNGX1Sv2h7hOW15Fatow1GO8fJxxbCmaNvDYCMHNSuv9jRGyBAr63hWfnLQQGAVpwRE7HxjmlgvMZrGmKxiNzBSvT53II3jZ2uKAmjA=="}, "tlogEntries": [{"logIndex": "556459186", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "dsse", "version": "0.0.1"}, "integratedTime": "1758732890", "inclusionPromise": {"signedEntryTimestamp": "MEUCIQDB7CLnO1eHW7tsCBK1/FwQKfUCsKrmkdKnQmMpFJBgiAIgXaJryj3ZV/AvY/2ClmEtkPZCPbndMPGfEbgYHRw2SqE="}, "inclusionProof": {"logIndex": "434554924", "rootHash": "ztEBW8f9NWAXr6JzME3GzpkGwyHhZU/n7Dm4o2YPkcs=", "treeSize": "434554938", "hashes": ["ZJJF6vNfV9AzT+1p6djX19Op8H9wjFEalWgxaNiWe9Q=", "XMmk+U/hXQP2eqKwNBPOl6KaGwKKWT0YBt637cWbzcA=", "Tg+lWibHFCLnW5pzwCvhrBDSqURYJAOo8Nj2IKaLHJ4=", "9va9gwxqw3Vnpmh+8+1KR7sT8zeLXECschOUNP0R4mw=", "7PgsnRCEIArWDZEz27QZWLyHbXw2oSNoqrli6JkMNB0=", "sh9X3Tm0z2jt2RDQKIg9n3/YNFOauga/H/zIzfTTIF4=", "TyUfI8iATzUOBQSZxoCGz/Hywr6B8LHaLFyODACPaMw=", "slaXsbsa9MQEUOXlI1I1P168FHGq+AqwGkWzxEc8lhg=", "Am8F0Sfz3+mCs/62DXBPYGaOAQqNkHgOTzx4r14FebA=", "hmIw5G4M/Kv7Jzca01WyQBdxX/oPauMqx3kZyd8TTkw=", "EiqbFZTxQ0+LhlLmQzWv/CamiELSUNO5eYGkUCNvsy8=", "kIpC8HZ1RqnIJoiaLXMnAF27OjCtAmXbe2DJqVL303o=", "2Ums0BJj8X63OztoWu5/Iu3n3DySpmrs46my98VBQuA=", "xpJKkCRds0GSfols2CmZTiYCRJjEXZ4F1M6bU2bnjrw=", "rO8wDSOjmY8VkspFqYaJS4TV5HxywICMlHM8gTxXkAA=", "1mfy94KpcItqshH9+gwqV6jccupcaMpVsF28New8zDY=", "vS7O4ozHIQZJWBiov+mkpI27GE8zAmVCEkRcP3NDyNE="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n434554938\nztEBW8f9NWAXr6JzME3GzpkGwyHhZU/n7Dm4o2YPkcs=\n\n\u2014 rekor.sigstore.dev wNI9ajBFAiEAzGOFXHJE1CcNC9G8cLcXwjfQG2zTAr5s+loVIHZDpDACIAXp4uJoREnYaexsZ/qkckrV64FownHcLaUjEo93wohT\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiZHNzZSIsInNwZWMiOnsiZW52ZWxvcGVIYXNoIjp7ImFsZ29yaXRobSI6InNoYTI1NiIsInZhbHVlIjoiMzNkMTYxNjNjOGMxMjRmYWJjYjU1YzAyZmVkMTM2ZmI1OWE5MGM5OGM5ZmM5ZDYzZjMzMjZmNTc4ZTFkZWY5OCJ9LCJwYXlsb2FkSGFzaCI6eyJhbGdvcml0aG0iOiJzaGEyNTYiLCJ2YWx1ZSI6ImYyZTk3ZTA1NjA4ZjdjN2JhYjQ0ZjZiZTNkODE2Zjc3OGNjYmExYjFjNWI3YmQwYjY3ZDA5Mjk0NjQ0NzUxMDkifSwic2lnbmF0dXJlcyI6W3sic2lnbmF0dXJlIjoiTUVVQ0lRRGRiSkZva0RWVVdFQ3ptUzJjVlZYekdxY2dWNzhIWlk3U2d0VDBLMWw4SmdJZ0RIVDhzMEpGVjgzaDd0OExmcXliSUNvK3dlcENnZjVWbldzVTVGcHExeTg9IiwidmVyaWZpZXIiOiJMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VNMVZFTkRRVzExWjBGM1NVSkJaMGxWVEZKTk1GVjJVRmgyZGtkeFdHNWtTVXBVY1dsdU9GRlJibXROZDBObldVbExiMXBKZW1vd1JVRjNUWGNLVG5wRlZrMUNUVWRCTVZWRlEyaE5UV015Ykc1ak0xSjJZMjFWZFZwSFZqSk5ValIzU0VGWlJGWlJVVVJGZUZaNllWZGtlbVJIT1hsYVV6RndZbTVTYkFwamJURnNXa2RzYUdSSFZYZElhR05PVFdwVmQwOVVTVEJOVkZreFRrUlJNRmRvWTA1TmFsVjNUMVJKTUUxVVkzZE9SRkV3VjJwQlFVMUdhM2RGZDFsSUNrdHZXa2w2YWpCRFFWRlpTVXR2V2tsNmFqQkVRVkZqUkZGblFVVXdjak5ZU1hOS2JXVkllVFJFV2xKM2JWZzJabGRNVEVWR1VXdDBNRGxTVGpWSlp5OEtZMWhvWVVWU2VYcGhVbWgyY21wbE9IZE9iRFprYVM5R1IxSlNVVlpNTXpOc2FrcHBXV1V3UzNWaWQwTk5PR0pqZW1GUFEwRlpiM2RuWjBkSFRVRTBSd3BCTVZWa1JIZEZRaTkzVVVWQmQwbElaMFJCVkVKblRsWklVMVZGUkVSQlMwSm5aM0pDWjBWR1FsRmpSRUY2UVdSQ1owNVdTRkUwUlVablVWVTNaMnBDQ2xnMk1UVmtNbUZQY1VwRFUwaE9aelJPV0NzclIweE5kMGgzV1VSV1VqQnFRa0puZDBadlFWVXpPVkJ3ZWpGWmEwVmFZalZ4VG1wd1MwWlhhWGhwTkZrS1drUTRkMHBCV1VSV1VqQlNRVkZJTDBKQ2IzZEhTVVZYVWpOS2FHSnRiREJhVXpFeVdsaEtjRnB1YkVGaFYwcDBURzFPZG1KVVFUQkNaMjl5UW1kRlJRcEJXVTh2VFVGRlFrSkRXbTlrU0ZKM1kzcHZka3d6VG5CYU0wNHdZak5LYkV4dVdteGpiV3h0WlZNMWNGbHRNSFZaTWpsMFRESTVhR1JZVW05TmFrRXlDa0puYjNKQ1owVkZRVmxQTDAxQlJVbENRMmROU20xb01HUklRbnBQYVRoMll6SnNibU16VW5aamJWVjFaRzFXZVdGWFdqVk1iV3hwWWxNMWFtSXlNSFlLWWpKR01XUkhaM2xOU1VkTFFtZHZja0puUlVWQlpGbzFRV2RSUTBKSWQwVmxaMEkwUVVoWlFUTlVNSGRoYzJKSVJWUktha2RTTkdOdFYyTXpRWEZLU3dwWWNtcGxVRXN6TDJnMGNIbG5Remh3TjI4MFFVRkJSMXBtUzFsalFsRkJRVUpCVFVGU2VrSkdRV2xGUVRSR2FtOVZRMXBOSzJ0Vk5XTjZibHB6YWpGeENuWk1WWEUyYXpGa1QxaFZlRXBtV1ZCd1FYaHRTVE4zUTBsRFUzRjVObUZVZDFBeldUZHZiVzB5UmxSRFVHWkNiVzF6ZG1sUVVIcG1lRmQ0UXpsdmVtb0tTbkp4T0UxQmIwZERRM0ZIVTAwME9VSkJUVVJCTW1kQlRVZFZRMDFSUkZCbGFYQm9aRElyUW1oTVkzbzVWV1JpTW0xUGEzWk1hR0V6SzJkNlRrZFlNUXBUZGpKb04yaFBWekUxUm1GMGIzY3hSMDg0WmtwNGVHSkRiV0ZPZGtSWlEwMUlUbE4xZGpscVVrZDVRa0Z5TmpOb1YyWnVURkZSUjBGV2NIZFNSVGRJQ25ocWJXeG5kazFhY2tkdFMzaHBUbnBDVTNaVU5UTkpTVE5xV2pKMVMwRnRha0U5UFFvdExTMHRMVVZPUkNCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2c9PSJ9XX19"}], "timestampVerificationData": {}}, "dsseEnvelope": {"payload": "ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAiZ3Jhbml0ZS00LjAtaC1taWNyby1iYXNlIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjQzMzczMTU0ODE3ZDZiNTI0MzMzY2M0NTY1Y2VhM2IzZDBkMzdiZGMzMDMyMzliZGRlODI2NGU4MGVkMDdjZjgiCiAgICAgIH0KICAgIH0KICBdLAogICJwcmVkaWNhdGVUeXBlIjogImh0dHBzOi8vbW9kZWxfc2lnbmluZy9zaWduYXR1cmUvdjEuMCIsCiAgInByZWRpY2F0ZSI6IHsKICAgICJzZXJpYWxpemF0aW9uIjogewogICAgICAiaGFzaF90eXBlIjogInNoYTI1NiIsCiAgICAgICJtZXRob2QiOiAiZmlsZXMiLAogICAgICAiYWxsb3dfc3ltbGlua3MiOiBmYWxzZQogICAgfSwKICAgICJyZXNvdXJjZXMiOiBbCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogImViNGYwZjAyOGEwYjcyOTU3NmEwYzQ5N2JmYjQ1ZmRjNTBiYzNlYmY2MmUyNGVlODZmMDNkZGU1YjhhNGU0NWEiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAibmFtZSI6ICJSRUFETUUubWQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogImJkODI4YjAwZWRjYzI1ZjkzZDZmYTU1MjEwYWNlYmNkMDU4MDU0YzRkNWI1ZmE2YzUxNDZiMGEwZDE4MTcyZWUiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAibmFtZSI6ICJjb25maWcuanNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiN2MwNGNiOWQyYmE3NzFmNzUyOGZiYTVhNzEwNDk5OWNkYWY3NTY2ZDAyYjVmYmQ1ODQ3MjgyOWY2MjcxNjE3NyIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogImdlbmVyYXRpb25fY29uZmlnLmpzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogImI2ZmU0MjRlMzM0OTAzZjdmYjg0ZDNhMTA2ZDk3MzA0NTVmNDc0NGI5ZmUzYzIxZWUxMzZkOTdhMDBlNzI1MDIiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAibmFtZSI6ICJtZXJnZXMudHh0IgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICIwOTczNjBmYzAwYTQ5MzYxOTJjZWQyOTc3NjYyYmYyOWRiMmRiZGQ5ODM5MjdmOTkwZGI2ZTNkZDhiMTllZmFjIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgIm5hbWUiOiAibW9kZWwtMDAwMDEtb2YtMDAwMDIuc2FmZXRlbnNvcnMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogIjBkM2U4NDllNmY3MzdjNTc2M2IzNzdmZjU0Y2I2NjRhYTZhNzUxN2U1ZWYxYTRhYjQ3ZmM1ZDM2YmQ4Y2FlMWUiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAibmFtZSI6ICJtb2RlbC0wMDAwMi1vZi0wMDAwMi5zYWZldGVuc29ycyIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiYTA3NGQxZGQ3MDlhMTk4M2VkYmIxNTA4NjNmODQzNWRkOTNkMmE4ZDQ1MmVjZmE3OWNlY2U5ZTEwNGE0MDhkZCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogIm1vZGVsLnNhZmV0ZW5zb3JzLmluZGV4Lmpzb24iCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogImMwODY3NmM0OWZkNzk2OWEzMTMwZjcyYmU2ZDRiZjM0ZGE2NmFhNDg0YTZlMjFkZmZlMzU5ODkzYTFiZDVmMmUiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAibmFtZSI6ICJzcGVjaWFsX3Rva2Vuc19tYXAuanNvbiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiZTJiYWQ2NjQzOTUzOGNiNGQ1YTc1ODA2ODA5MzI0MzJlZDllY2U5ZDNiODU3N2U2NzU1MTJiZGYxMTU5OTI1MyIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogInRva2VuaXplci5qc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICJhNWVjNWRhYWIxMmJhMDkwYTkwZjNkZDE2OWM4ZjljMjc1NTU3MDEzYTg3YjljMTI1OGRjN2NiNDk3YTM1Yzg2IiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgIm5hbWUiOiAidG9rZW5pemVyX2NvbmZpZy5qc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICI4YWY3MTA3NmRlOGIwYjYyNmVlZDBmNGM5ODRmYWYwYTdjMDYyNDc5MTY0YjJhMzEzMDhhOTQ4NTI0ZDRmNjljIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgIm5hbWUiOiAidm9jYWIuanNvbiIKICAgICAgfQogICAgXQogIH0KfQ==", "payloadType": "application/vnd.in-toto+json", "signatures": [{"sig": "MEUCIQDdbJFokDVUWECzmS2cVVXzGqcgV78HZY7SgtT0K1l8JgIgDHT8s0JFV83h7t8LfqybICo+wepCgf5VnWsU5Fpq1y8="}]}}