.gitattributes CHANGED
@@ -55,6 +55,3 @@ build/torch213-metal-aarch64-darwin/_bitsandbytes_mps_metal_2e4b976.abi3.so filt
55
  build/torch211-metal-aarch64-darwin/_bitsandbytes_mps_metal_8a730d9.abi3.so filter=lfs diff=lfs merge=lfs -text
56
  build/torch212-metal-aarch64-darwin/_bitsandbytes_mps_metal_8a730d9.abi3.so filter=lfs diff=lfs merge=lfs -text
57
  build/torch213-metal-aarch64-darwin/_bitsandbytes_mps_metal_8a730d9.abi3.so filter=lfs diff=lfs merge=lfs -text
58
- build/torch212-metal-aarch64-darwin/_bitsandbytes_mps_metal_addf474.abi3.so filter=lfs diff=lfs merge=lfs -text
59
- build/torch213-metal-aarch64-darwin/_bitsandbytes_mps_metal_addf474.abi3.so filter=lfs diff=lfs merge=lfs -text
60
- build/torch214-metal-aarch64-darwin/_bitsandbytes_mps_metal_addf474.abi3.so filter=lfs diff=lfs merge=lfs -text
 
55
  build/torch211-metal-aarch64-darwin/_bitsandbytes_mps_metal_8a730d9.abi3.so filter=lfs diff=lfs merge=lfs -text
56
  build/torch212-metal-aarch64-darwin/_bitsandbytes_mps_metal_8a730d9.abi3.so filter=lfs diff=lfs merge=lfs -text
57
  build/torch213-metal-aarch64-darwin/_bitsandbytes_mps_metal_8a730d9.abi3.so filter=lfs diff=lfs merge=lfs -text
 
 
 
build/torch212-metal-aarch64-darwin/{_bitsandbytes_mps_metal_addf474.abi3.so → _bitsandbytes_mps_metal_8a730d9.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:3fe8b289b486755530f91f3faa6991989569a8092e095646756bb93301b6ac4d
3
- size 845464
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0852de6a5b6ba5bed5fa58ea542bf69d62e728384a3bcfe16eb73ff16f8c1912
3
+ size 845400
build/torch212-metal-aarch64-darwin/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _bitsandbytes_mps_metal_addf474
3
- ops = torch.ops._bitsandbytes_mps_metal_addf474
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_bitsandbytes_mps_metal_addf474::{op_name}"
 
1
  import torch
2
+ from . import _bitsandbytes_mps_metal_8a730d9
3
+ ops = torch.ops._bitsandbytes_mps_metal_8a730d9
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_bitsandbytes_mps_metal_8a730d9::{op_name}"
build/torch212-metal-aarch64-darwin/bitsandbytes_mps/__init__.py ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import ctypes
2
+ import importlib.util
3
+ import sys
4
+ from pathlib import Path
5
+ from types import ModuleType
6
+
7
+
8
+ def _import_from_path(file_path: Path) -> ModuleType:
9
+ # We cannot use the module name as-is, after adding it to `sys.modules`,
10
+ # it would also be used for other imports. So, we make a module name that
11
+ # depends on the path for it to be unique using the hex-encoded hash of
12
+ # the path.
13
+ path_hash = "{:x}".format(ctypes.c_size_t(hash(file_path.absolute())).value)
14
+ module_name = path_hash
15
+ spec = importlib.util.spec_from_file_location(module_name, file_path)
16
+ if spec is None:
17
+ raise ImportError(f"Cannot load spec for {module_name} from {file_path}")
18
+ module = importlib.util.module_from_spec(spec)
19
+ if module is None:
20
+ raise ImportError(f"Cannot load module {module_name} from spec")
21
+ sys.modules[module_name] = module
22
+ spec.loader.exec_module(module) # type: ignore
23
+ return module
24
+
25
+
26
+ globals().update(vars(_import_from_path(Path(__file__).parent.parent / "__init__.py")))
build/torch212-metal-aarch64-darwin/metadata.json CHANGED
@@ -1,10 +1,9 @@
1
  {
2
  "name": "bitsandbytes-mps",
3
- "id": "_bitsandbytes_mps_metal_addf474",
4
  "version": 1,
5
  "license": "MIT",
6
  "python-depends": [],
7
- "kernel-depends": [],
8
  "backend": {
9
  "type": "metal"
10
  },
@@ -12,18 +11,19 @@
12
  "algorithm": "sha256",
13
  "files": {
14
  "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
15
- "_bitsandbytes_mps_metal_addf474.abi3.so": "P+iyibSGdVUw+R8/qmmRmJVpqAkuCVZGdWu5MwG2rE0=",
16
- "_ops.py": "l8HruWkDA+SB/OwWA5dmr6G7n6Fk8KstXjEqUH2rh34="
 
17
  }
18
  },
19
  "provenance": {
20
  "kernel-builder": {
21
  "version": "0.17.0-dev0",
22
- "commit": "081dcd473f8eca27226eef1f9c47c45b86c756b5",
23
  "dirty": false
24
  },
25
  "kernel": {
26
- "commit": "addf4741fafb55b4c101b15985dfaeea7c7c2f3a",
27
  "dirty": false
28
  }
29
  }
 
1
  {
2
  "name": "bitsandbytes-mps",
3
+ "id": "_bitsandbytes_mps_metal_8a730d9",
4
  "version": 1,
5
  "license": "MIT",
6
  "python-depends": [],
 
7
  "backend": {
8
  "type": "metal"
9
  },
 
11
  "algorithm": "sha256",
12
  "files": {
13
  "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
14
+ "_bitsandbytes_mps_metal_8a730d9.abi3.so": "CFLealtrpb7V+ljqVCv2nWLnKDhKO8/hbrc/8W+MGRI=",
15
+ "_ops.py": "82wkcg038yTRll4cqulqPLcQZmaDENBQ7E2qGWweQS4=",
16
+ "bitsandbytes_mps/__init__.py": "DFYPlrhXwYjEqCl/8n0SmWGZV8NFml5DPhMjKfv98GY="
17
  }
18
  },
19
  "provenance": {
20
  "kernel-builder": {
21
  "version": "0.17.0-dev0",
22
+ "sha": "81580bb92577f2f7228661ca2a221fc052375709",
23
  "dirty": false
24
  },
25
  "kernel": {
26
+ "sha": "8a730d96c37560ccf1d3e09f7bbccdc886818f33",
27
  "dirty": false
28
  }
29
  }
build/torch212-metal-aarch64-darwin/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHYTCCBuegAwIBAgIUJuIK1d4c5gIdJH5vqFpznGQ4CVUwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI3MDY0MzU0WhcNMjYwODI3MDY1MzU0WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDexVgE+2Z28SPmtOs4P/mkMxJw+kqhe7uq1sDu+hNMw682n5Jkw7uITMLq7MaoFqEhM6gFelP4Zw3CpYljaHhqOCBgYwggYCMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUW8fdtLEg/JlNq131G7wLUpxMDoMwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wbwYDVR0RAQH/BGUwY4ZhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwGwYKKwYBBAGDvzABBAQNQnVpbGQgKG1hY09TKTArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMHEGCisGAQQBg78wAQkEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAEKBCoMKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBxBgorBgEEAYO/MAESBGMMYWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC1tYWMueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABEwQqDChhZGRmNDc0MWZhZmI1NWI0YzEwMWIxNTk4NWRmYWVlYTdjN2MyZjNhMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwZAYKKwYBBAGDvzABFQRWDFRodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvYWN0aW9ucy9ydW5zLzMzMDQ1MzYxNTQ5L2F0dGVtcHRzLzEwFgYKKwYBBAGDvzABFgQIDAZwdWJsaWMwRgYKKwYBBAGDvzABGAQ4DDZyZXBvOmh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5OnJlZjpyZWZzL2hlYWRzL21haW4wgYoGCisGAQQB1nkCBAIEfAR6AHgAdgDdPTBqxscRMmMZHhyZZzcCokpeuN48rf+HinKALynujgAAAaBB9fnAAAAEAwBHMEUCIQDjAP0vZQGWJGU/6PlQbsYxtXmmEGgqs+4a3Gdy+erqjwIgHHaH3hh81Wppic5acbXNTdpUEoTvMjbDQK9BFznInkgwCgYIKoZIzj0EAwMDaAAwZQIwDAEtsX08EtS0sVwqKqLVU8A9+SsW++sIKeyGbFMQlin5e9ZMKO2XHxZTkiVkqQd3AjEAlYVRqTNEKhvUfmN4oAGqsJW9NWhqbqwAs8xDNg7geNd+WbdTW7tDaVSrY5LG2Bg0"},"tlogEntries":[{"logIndex":"2613712877","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787813034","inclusionPromise":{"signedEntryTimestamp":"MEQCIHwUqQ4w+4lCWpp3bbq/sJoAATquPepTpGJpkMErNGPRAiBqiKd1qxBkJTagML1n4Rb5Ay8wPiuEv752cMLrOWbScA=="},"inclusionProof":{"logIndex":"2491808615","rootHash":"Kju03UDbNW4hNxEQsu57GVcUAcaM9aAW9o3CuKiwpAw=","treeSize":"2491808628","hashes":["uwsHFDqfyGjTI/jPn2iiNzxJTH74tWhNauHG+BJlaS0=","1uEMcgoM5MOicWmtn47Ecwsb6vJtrmJLP5rktkK+REM=","40Uj98RAZvtrARp9JoxzYEGGz6y5ogTAbBHGHz2lbqs=","/lpNN5gjY43o7/q+xZHEzi4vLyG2at8Yz29vCXcruuo=","+wWBV/2Yw6cQzt0AGQEZ4W9gAbFYPUvTSTarZ3mHkg8=","NyZSBDzBtDB4pdj8bYN2PiKD8nODII9Ty9mDI/u4Sng=","lAx0jUGyq9HZlnmJKxTy9nICT9TFIbizYlRYQl3newk=","7RpkkHRl02EsXlK2RVA8unRJMslzIN2RCPaXT251K/E=","fSoPklAC67Y4qGkPPJ0tgN9Esk1pOgheH82inh4GoeM=","vDO4mFDFDlM6fOA7cP9WVtFoAUQVy41uBHeqzT9XUOo=","32KhxEZQsHzhvj5kywpcHXpDe/PdUU5A3cXJaatX5iI=","o4VrcXFJgdy7xEexAoHr67fLnbbPCK6U1/wLV0KLCqc=","83YZ4v/yz1J45+azokpOB8uoQ/Pr1iSMUGjfAg+xPc0=","wP53eMxZdmktSvKrqWMYOGzrZyD5NAaEMhRCrykR34Y=","v9xqun9zxtoZrifGMxqDEeiCg5lbscvvJiAec8LqOsQ=","E7AEzQrWJL3fkxC6doP8J8+b69/ILUYXJjzAAPrp8Oo=","7TfDCaMWgEwSJEZd/e33b24919rF4IDJLmbqNNRNhZs=","0HfdxDt/zGugZLIuHasrdLEW9s8OaTykSSqBEDFQXdw=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2491808628\nKju03UDbNW4hNxEQsu57GVcUAcaM9aAW9o3CuKiwpAw=\n\n— rekor.sigstore.dev wNI9ajBGAiEAqMDe0wruxzZxkHKdRIFJ/7Nshs8YCusWpz/CRm7+XNsCIQDHdplLW4tjwHzU7YfXLmtgzx0Hyh2knLaAP29jUV1Fkg==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJjOTg1YjI2YjY4MzgyZjA4N2VmYmY1NmI0OGIxZDE4ZDdkMzQzNjY2ZDY3ZDZhN2RlYWMwOTViZWQyYjJjMzIyIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUNMblJCcjJVZUpETkFjSno2N3BGOEFUdTRUeFQ4WFhIZTAxTGF3NFZMMTFRSWhBTEZZU1luMVVhRTRDUkRkVXdpY3llbkZwTVNjcVo1UVloZmVZRFNyM1NyVCIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFpWRU5EUW5WbFowRjNTVUpCWjBsVlNuVkpTekZrTkdNMVowbGtTa2cxZG5GR2NIcHVSMUUwUTFaVmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1ROTlJGa3dUWHBWTUZkb1kwNU5hbGwzVDBSSk0wMUVXVEZOZWxVd1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZFWlhoV1owVXJNbG95T0ZOUWJYUlBjelJRTDIxclRYaEtkeXRyY1dobE4zVnhNWE1LUkhVcmFFNU5kelk0TW00MVNtdDNOM1ZKVkUxTWNUZE5ZVzlHY1VWb1RUWm5SbVZzVURSYWR6TkRjRmxzYW1GSWFIRlBRMEpuV1hkbloxbERUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZYT0daa0NuUk1SV2N2U214T2NURXpNVWMzZDB4VmNIaE5SRzlOZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJKM1dVUldVakJTUVZGSUwwSkhWWGRaTkZwb1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4WE1XaFplVFUxQ2xsWE1YTlJTRXBzV201TmRtRkhWbWhhU0UxMllsZEdjR0pxUVRWQ1oyOXlRbWRGUlVGWlR5OU5RVVZDUWtOMGIyUklVbmRqZW05MlRETlNkbUV5Vm5VS1RHMUdhbVJIYkhaaWJrMTFXakpzTUdGSVZtbGtXRTVzWTIxT2RtSnVVbXhpYmxGMVdUSTVkRTFDT0VkRGFYTkhRVkZSUW1jM09IZEJVVWxGUlZoa2RncGpiWFJ0WWtjNU0xZ3lVbkJqTTBKb1pFZE9iMDFFV1VkRGFYTkhRVkZSUW1jM09IZEJVVTFGUzBkR2ExcEhXVEJPZWxGNFdtMUdiVmxxVlRGWmFsSnFDazFVUVhoWmFrVXhUMVJuTVZwSFdtaGFWMVpvVGpKTk0xbDZTbTFOTWtWM1IzZFpTMHQzV1VKQ1FVZEVkbnBCUWtKQlVVNVJibFp3WWtkUlowdEhNV2dLV1RBNVZFdFVRWEpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0l4YjJSWFpHNWhWelZ1V20xR2FscFRPWEphV0VwMVdsZDRla3hYVG5aaVZ6RXhZbTFzTUFwbFZFRmtRbWR2Y2tKblJVVkJXVTh2VFVGRlIwSkJPWGxhVjFwNlRESm9iRmxYVW5wTU1qRm9ZVmMwZDA5M1dVdExkMWxDUWtGSFJIWjZRVUpEUVZGMENrUkRkRzlrU0ZKM1kzcHZka3d6VW5aaE1sWjFURzFHYW1SSGJIWmliazExV2pKc01HRklWbWxrV0U1c1kyMU9kbUp1VW14aWJsRjFXVEk1ZEUxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZGclJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJVdENRMjlOUzBkR2ExcEhXVEJPZWxGNFdtMUdiVmxxVlRFS1dXcFNhazFVUVhoWmFrVXhUMVJuTVZwSFdtaGFWMVpvVGpKTk0xbDZTbTFOTWtWM1NGRlpTMHQzV1VKQ1FVZEVkbnBCUWtOM1VWQkVRVEZ1WVZoU2J3cGtWMGwwWVVjNWVtUkhWbXROUlVGSFEybHpSMEZSVVVKbk56aDNRVkYzUlUxbmQzZGhTRkl3WTBoTk5reDVPVzVoV0ZKdlpGZEpkVmt5T1hSTU1tZ3hDbG95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFJpV0ZaMVlWaFNOVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVEJGUzJkM2IxbFhVbXNLV21wUk0wNUVSbTFaVjFwcFRsUldhVTVIVFhoTlJFWnBUVlJWTlU5RVZtdGFiVVpzV2xkRk0xbDZaR3BOYlZsNldWUkJaa0puYjNKQ1owVkZRVmxQTHdwTlFVVlBRa0pGVFVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJZVUpuYjNKQ1owVkZRVmxQTDAxQlJWQkNRWGROUTJwRmQwNTZSVEJPZWxVeENrMXFhM2RNWjFsTFMzZFpRa0pCUjBSMmVrRkNSVUZSWjBSQ05XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZDBkQldVdExkMWxDUWtGSFJIWjZRVUpGVVZGTFJFRm5lVTVVWTNsTlJHTXdUWHBDZUVKbmIzSkNaMFZGUVZsUEwwMUJSVk5DUjAxTldWZG9NQXBrU0VKNlQyazRkbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemgxQ2xveWJEQmhTRlpwVEROa2RtTnRkRzFpUnprelkzazVhV1JYYkhOYVF6RjBXVmROZFdWWFJuUmlSVUo1V2xkYWVrd3lhR3haVjFKNlRESXhhR0ZYTkhjS1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmhvV2tkU2JVNUVZekJOVjFwb1dtMUpNVTVYU1RCWmVrVjNUVmRKZUU1VWF6Uk9WMUp0V1ZkV2JBcFpWR1JxVGpKTmVWcHFUbWhOUTBWSFEybHpSMEZSVVVKbk56aDNRVkpSUlVWM2QxSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkYVFWbExDa3QzV1VKQ1FVZEVkbnBCUWtaUlVsZEVSbEp2WkVoU2QyTjZiM1pNTW1Sd1pFZG9NVmxwTldwaU1qQjJZVWhXYmxveWJIVmFNbHBvV1RKVmRtRXlWbmtLWW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNaWlYwNHdZVmM1ZFdONU9YbGtWelY2VEhwTmVrMUVVVEZOZWxsNFRsUlJOVXd5UmpCa1IxWjBZMGhTZWdwTWVrVjNSbWRaUzB0M1dVSkNRVWRFZG5wQlFrWm5VVWxFUVZwM1pGZEtjMkZYVFhkU1oxbExTM2RaUWtKQlIwUjJla0ZDUjBGUk5FUkVXbmxhV0VKMkNrOXRhREZhTW1Sd1ltMWtiVmxYVG14TU1uUnNZMjAxYkdKSVRYUlpNamwwWWxoV2RXRllValZQYmtwc1dtcHdlVnBYV25wTU1taHNXVmRTZWt3eU1XZ0tZVmMwZDJkWmIwZERhWE5IUVZGUlFqRnVhME5DUVVsRlprRlNOa0ZJWjBGa1owUmtVRlJDY1hoelkxSk5iVTFhU0doNVdscDZZME52YTNCbGRVNDBPQXB5Wml0SWFXNUxRVXg1Ym5WcVowRkJRV0ZDUWpsbWJrRkJRVUZGUVhkQ1NFMUZWVU5KVVVScVFWQXdkbHBSUjFkS1IxVXZObEJzVVdKeldYaDBXRzF0Q2tWSFozRnpLelJoTTBka2VTdGxjbkZxZDBsblNFaGhTRE5vYURneFYzQndhV00xWVdOaVdFNVVaSEJWUlc5VWRrMXFZa1JSU3psQ1JucHVTVzVyWjNjS1EyZFpTVXR2V2tsNmFqQkZRWGROUkdGQlFYZGFVVWwzUkVGRmRITllNRGhGZEZNd2MxWjNjVXR4VEZaVk9FRTVLMU56VnlzcmMwbExaWGxIWWtaTlVRcHNhVzQxWlRsYVRVdFBNbGhJZUZwVWEybFdhM0ZSWkROQmFrVkJiRmxXVW5GVVRrVkxhSFpWWm0xT05HOUJSM0Z6U2xjNVRsZG9jV0p4ZDBGek9IaEVDazVuTjJkbFRtUXJWMkprVkZjM2RFUmhWbE55V1RWTVJ6SkNaekFLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgVcKp3+UMVsrjTAtySCYmPCX4R1iDCZ4pnsXRN9Ymkn0CFGu/JxSettGMOgelHn0hFK/oOy0nGA8yMDI2MDgyNzA2NDM1NFowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI3MDY0MzU0WjAvBgkqhkiG9w0BCQQxIgQg1tQGlAJTgvznSdayZ54vQqfE7TWiwl9qv2JVVKwVwMwwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIxALJY/sHdmwRQBOmVfyW3E3B0rBTH+AxW7jEFLF1oNDZxfX+F3hoBWAS75is3tWcjbQIwYmGZfyVFiBF508MBjuubl8JyRvwR1g6dZzSaEEOew43YFJ8nFcSvk75UpFeOcxKS"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"yYWya2g4Lwh++/VrSLHRjX00NmbWfWp96sCVvtKywyI="},"signature":"MEYCIQCLnRBr2UeJDNAcJz67pF8ATu4TxT8XXHe01Law4VL11QIhALFYSYn1UaE4CRDdUwicyenFpMScqZ5QYhfeYDSr3SrT"}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHYTCCBuegAwIBAgIUITcXSl+eW+zSj2JgcGIYgQ9JeNgwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNzA4MDkzMTI4WhcNMjYwNzA4MDk0MTI4WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhKv0cd9MpwhtjhoBW0W3RLfWg8pWfLFdWuygqHyElVNnLc2N9gb9y0PAehyrHKYs3pTojov/wgcaKYm9oxUagqOCBgYwggYCMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUZSYpR/XJ6J/2M+kGMMaYI9FdscUwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wbwYDVR0RAQH/BGUwY4ZhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKDhhNzMwZDk2YzM3NTYwY2NmMWQzZTA5ZjdiYmNjZGM4ODY4MThmMzMwGwYKKwYBBAGDvzABBAQNQnVpbGQgKG1hY09TKTArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMHEGCisGAQQBg78wAQkEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAEKBCoMKDhhNzMwZDk2YzM3NTYwY2NmMWQzZTA5ZjdiYmNjZGM4ODY4MThmMzMwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBxBgorBgEEAYO/MAESBGMMYWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC1tYWMueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABEwQqDCg4YTczMGQ5NmMzNzU2MGNjZjFkM2UwOWY3YmJjY2RjODg2ODE4ZjMzMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwZAYKKwYBBAGDvzABFQRWDFRodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvYWN0aW9ucy9ydW5zLzI4OTMxMTkwMjcwL2F0dGVtcHRzLzEwFgYKKwYBBAGDvzABFgQIDAZwdWJsaWMwRgYKKwYBBAGDvzABGAQ4DDZyZXBvOmh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5OnJlZjpyZWZzL2hlYWRzL21haW4wgYoGCisGAQQB1nkCBAIEfAR6AHgAdgDdPTBqxscRMmMZHhyZZzcCokpeuN48rf+HinKALynujgAAAZ9BEW1bAAAEAwBHMEUCIQCzcp8c4xEntNbF0zL185yh79UjVW6HqbBbNuTmEVxMxQIgDLWZ6gsQWgLYVceJqcZ68Vxox/kxTXF6LbrnX9f5PDowCgYIKoZIzj0EAwMDaAAwZQIxAPDiKVB0IAKkyICclMHXNNy3Jwo5LOBUNxtRxaSzra2t8GqPGfk78RfwHyFIrjkCYwIwbj++7dlVYbz0g3Dsjcyu2vE8vAhsTVRxG8n+AUYfP+HNmVK67WedmkR3jjQfAUph"},"tlogEntries":[{"logIndex":"2114050710","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1783503089","inclusionPromise":{"signedEntryTimestamp":"MEUCIQD16G/FjqiDX1kwpNuyS/54Vtc21m+skouGO16ghmvBHwIgbDPu5K1t05DrhZtLOKUr/FCMUrSep10Lqvt5I6Lxw3w="},"inclusionProof":{"logIndex":"1992146448","rootHash":"B6NTa5GfBNDVGASuDiE/X7GcWvI3J+h1qu2NkDwb/G4=","treeSize":"1992146456","hashes":["nSQoisCN2t+VKgn4Ng+Xbloj3QjXQfJsHwUxLLrRkwo=","fJYENMqY3p1uMqjOiPtINdKTL4JOo5UZetvEpABuQeI=","PyKacGd1TOzonVUX/wm41CUxOyHeQEkUNRX1XhV6XHs=","kdHza/TpAvBgmUjqN6uX+7x9htphsYZxYWE7oqvwbok=","9+bPTmiSu3OZGW0hgwPUoL9zHFWyt/LfFJnQVZIWgwI=","nFN2p5hPYRGd0Iu8+TAmyhbEAvTJDt1NnWpDAiPixcI=","q8/g5osqGPIuqE5wE2qxfFehh2/Wpt3ybBf0T5+fQUo=","lMHak7Tzg3f53GiOSOK9fErpjV8mG4MKhTxfekY9cKs=","lNWmtLA9nenrjvrgkSDblv+6UJkO/AmP3cVBvAXp5Bo=","tY8nHkJkYkzR0a8crBzP4XX2ys6vaQR/b0ImUbbsFfk=","W8OH9B7+IUIWw6Asm1BMB4ZxX27Q2QG2hpA1yZ+WxAQ=","q0bDCYYM8Kl1AcQlFtAjsMRkDgQDRjrR/EhSNDT6HeI=","Uh9Q3t0owp3nQij7uUVzswxCf/9lo7BQqoqZwxfV0u4=","fZbx4AWo+aeMN9Mbraux+rscCGLJEHB7hXu1e/kRgeo=","D/x3yP7cG/SpQUwSXzpITAOA0UroT/kIiXSF3wR+jT4=","Bcvbbu+tDL+zr1H2q26c2ATmVu7v/f7JIFweUu7qDK8=","WajL3ZhY6ZX9meV3VTH9TkrbM31OF4o6+7foL0Uf6PI=","cyKMKBvHkQtwb2xR5svh+YppANOVdn7X8t4DuKMxICA=","+/VZ56MsIPxMiyLAodzKXo5TEWdQp36z89qLhpzloAo=","daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=","DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n1992146456\nB6NTa5GfBNDVGASuDiE/X7GcWvI3J+h1qu2NkDwb/G4=\n\n— rekor.sigstore.dev wNI9ajBGAiEAuZ1hzL6xKBS4gNdwaIDzFhBnRgRhzmWH3kH2vGFt1LICIQDllZtuH+RJWZusV8+2vIyWzuUNslWF2OUmMjEh/KD1GQ==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI2NzY3MjQyNWE4NDE1MDlkZjMxMWExOGQwZGQ2NGY3N2Q4YmEzYmZiOTJkMTA5Y2RmZjJhMGQ1MDRiMWJiOGI4In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJQTlzL3pEOG14MU94Q0RaMndzNUFLSWZHR0ZibGlYVXQ5UGIwN2NPeGZaUUFpRUEzbzRESHc4UEhxWTZhK1ZwNnJRZnpMOTB3QTlLdU13dmlydjRLdXVwOUI0PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFpWRU5EUW5WbFowRjNTVUpCWjBsVlNWUmpXRk5zSzJWWEszcFRhakpLWjJOSFNWbG5VVGxLWlU1bmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDU2UVRSTlJHdDZUVlJKTkZkb1kwNU5hbGwzVG5wQk5FMUVhekJOVkVrMFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZvUzNZd1kyUTVUWEIzYUhScWFHOUNWekJYTTFKTVpsZG5PSEJYWmt4R1pGZDFlV2NLY1VoNVJXeFdUbTVNWXpKT09XZGlPWGt3VUVGbGFIbHlTRXRaY3pOd1ZHOXFiM1l2ZDJkallVdFpiVGx2ZUZWaFozRlBRMEpuV1hkbloxbERUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZhVTFsd0NsSXZXRW8yU2k4eVRTdHJSMDFOWVZsSk9VWmtjMk5WZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJKM1dVUldVakJTUVZGSUwwSkhWWGRaTkZwb1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4WE1XaFplVFUxQ2xsWE1YTlJTRXBzV201TmRtRkhWbWhhU0UxMllsZEdjR0pxUVRWQ1oyOXlRbWRGUlVGWlR5OU5RVVZDUWtOMGIyUklVbmRqZW05MlRETlNkbUV5Vm5VS1RHMUdhbVJIYkhaaWJrMTFXakpzTUdGSVZtbGtXRTVzWTIxT2RtSnVVbXhpYmxGMVdUSTVkRTFDT0VkRGFYTkhRVkZSUW1jM09IZEJVVWxGUlZoa2RncGpiWFJ0WWtjNU0xZ3lVbkJqTTBKb1pFZE9iMDFFV1VkRGFYTkhRVkZSUW1jM09IZEJVVTFGUzBSb2FFNTZUWGRhUkdzeVdYcE5NMDVVV1hkWk1rNXRDazFYVVhwYVZFRTFXbXBrYVZsdFRtcGFSMDAwVDBSWk5FMVVhRzFOZWsxM1IzZFpTMHQzV1VKQ1FVZEVkbnBCUWtKQlVVNVJibFp3WWtkUlowdEhNV2dLV1RBNVZFdFVRWEpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0l4YjJSWFpHNWhWelZ1V20xR2FscFRPWEphV0VwMVdsZDRla3hYVG5aaVZ6RXhZbTFzTUFwbFZFRmtRbWR2Y2tKblJVVkJXVTh2VFVGRlIwSkJPWGxhVjFwNlRESm9iRmxYVW5wTU1qRm9ZVmMwZDA5M1dVdExkMWxDUWtGSFJIWjZRVUpEUVZGMENrUkRkRzlrU0ZKM1kzcHZka3d6VW5aaE1sWjFURzFHYW1SSGJIWmliazExV2pKc01HRklWbWxrV0U1c1kyMU9kbUp1VW14aWJsRjFXVEk1ZEUxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZGclJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJVdENRMjlOUzBSb2FFNTZUWGRhUkdzeVdYcE5NMDVVV1hjS1dUSk9iVTFYVVhwYVZFRTFXbXBrYVZsdFRtcGFSMDAwVDBSWk5FMVVhRzFOZWsxM1NGRlpTMHQzV1VKQ1FVZEVkbnBCUWtOM1VWQkVRVEZ1WVZoU2J3cGtWMGwwWVVjNWVtUkhWbXROUlVGSFEybHpSMEZSVVVKbk56aDNRVkYzUlUxbmQzZGhTRkl3WTBoTk5reDVPVzVoV0ZKdlpGZEpkVmt5T1hSTU1tZ3hDbG95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFJpV0ZaMVlWaFNOVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVEJGUzJkM2IwOUhSVE1LVFhwQ2EwOVVXbXBOZW1NeFRtcENhbGt5V1hoYVJFNXNUVVJzYlU0eVNtbFpNazVyV1hwbk5FNXFaM2hQUjFsNlRYcEJaa0puYjNKQ1owVkZRVmxQTHdwTlFVVlBRa0pGVFVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJZVUpuYjNKQ1owVkZRVmxQTDAxQlJWQkNRWGROUTJwRmQwNTZSVEJPZWxVeENrMXFhM2RNWjFsTFMzZFpRa0pCUjBSMmVrRkNSVUZSWjBSQ05XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZDBkQldVdExkMWxDUWtGSFJIWjZRVUpGVVZGTFJFRm5lVTVVWTNsTlJHTXdUWHBDZUVKbmIzSkNaMFZGUVZsUEwwMUJSVk5DUjAxTldWZG9NQXBrU0VKNlQyazRkbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemgxQ2xveWJEQmhTRlpwVEROa2RtTnRkRzFpUnprelkzazVhV1JYYkhOYVF6RjBXVmROZFdWWFJuUmlSVUo1V2xkYWVrd3lhR3haVjFKNlRESXhhR0ZYTkhjS1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmMwV1ZSamVrMUhVVFZPYlUxNlRucFZNazFIVG1wYWFrWnJUVEpWZDA5WFdUTlpiVXBxV1RKU2FncFBSR2N5VDBSRk5GcHFUWHBOUTBWSFEybHpSMEZSVVVKbk56aDNRVkpSUlVWM2QxSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkYVFWbExDa3QzV1VKQ1FVZEVkbnBCUWtaUlVsZEVSbEp2WkVoU2QyTjZiM1pNTW1Sd1pFZG9NVmxwTldwaU1qQjJZVWhXYmxveWJIVmFNbHBvV1RKVmRtRXlWbmtLWW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNaWlYwNHdZVmM1ZFdONU9YbGtWelY2VEhwSk5FOVVUWGhOVkd0M1RXcGpkMHd5UmpCa1IxWjBZMGhTZWdwTWVrVjNSbWRaUzB0M1dVSkNRVWRFZG5wQlFrWm5VVWxFUVZwM1pGZEtjMkZYVFhkU1oxbExTM2RaUWtKQlIwUjJla0ZDUjBGUk5FUkVXbmxhV0VKMkNrOXRhREZhTW1Sd1ltMWtiVmxYVG14TU1uUnNZMjAxYkdKSVRYUlpNamwwWWxoV2RXRllValZQYmtwc1dtcHdlVnBYV25wTU1taHNXVmRTZWt3eU1XZ0tZVmMwZDJkWmIwZERhWE5IUVZGUlFqRnVhME5DUVVsRlprRlNOa0ZJWjBGa1owUmtVRlJDY1hoelkxSk5iVTFhU0doNVdscDZZME52YTNCbGRVNDBPQXB5Wml0SWFXNUxRVXg1Ym5WcVowRkJRVm81UWtWWE1XSkJRVUZGUVhkQ1NFMUZWVU5KVVVONlkzQTRZelI0Ulc1MFRtSkdNSHBNTVRnMWVXZzNPVlZxQ2xaWE5raHhZa0ppVG5WVWJVVldlRTE0VVVsblJFeFhXalpuYzFGWFoweFpWbU5sU25GaldqWTRWbmh2ZUM5cmVGUllSalpNWW5KdVdEbG1OVkJFYjNjS1EyZFpTVXR2V2tsNmFqQkZRWGROUkdGQlFYZGFVVWw0UVZCRWFVdFdRakJKUVV0cmVVbERZMnhOU0ZoT1Rua3pTbmR2TlV4UFFsVk9lSFJTZUdGVGVncHlZVEowT0VkeFVFZG1hemM0VW1aM1NIbEdTWEpxYTBOWmQwbDNZbW9yS3pka2JGWlpZbm93WnpORWMycGplWFV5ZGtVNGRrRm9jMVJXVW5oSE9HNHJDa0ZWV1daUUswaE9iVlpMTmpkWFpXUnRhMUl6YW1wUlprRlZjR2dLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgXBehJLW23ssuux5ahtVPFi3Ah0SE5ly3fEVVlXEwXWgCFBC1Zi7nMjMpBR0Bjp69NdfZ/IdtGA8yMDI2MDcwODA5MzEyOVowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwNzA4MDkzMTI5WjAvBgkqhkiG9w0BCQQxIgQgh9td3rlYWZHJYQNoPWNodp8VpQREr9wZ+KMu3UhIMdcwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIxAKvrjcnAQCKiCuItB7BT/XRBbMUSX5OP8kscLRkaZL6KDwk8wGdYDPEpVIyY6C5iegIwAkET1Ne3ci1T1vaHL1Imml2QRhrHxkRWt8Xdv3x5uUFW09udaogpa++lFNTsoGLP"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"Z2ckJahBUJ3zEaGNDdZPd9i6O/uS0QnN/yoNUEsbuLg="},"signature":"MEUCIA9s/zD8mx1OxCDZ2ws5AKIfGGFbliXUt9Pb07cOxfZQAiEA3o4DHw8PHqY6a+Vp6rQfzL90wA9KuMwvirv4Kuup9B4="}}
build/torch213-metal-aarch64-darwin/{_bitsandbytes_mps_metal_addf474.abi3.so → _bitsandbytes_mps_metal_8a730d9.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:6d4307eb81a1b53ddb638f8b5c7155bede0734472ab918ac4dbbe7792e5edb29
3
- size 845896
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:71f016624a9fe7b6f8fcb5f9af52981ec27af98adda75b5e4af4dec3ce478016
3
+ size 845832
build/torch213-metal-aarch64-darwin/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _bitsandbytes_mps_metal_addf474
3
- ops = torch.ops._bitsandbytes_mps_metal_addf474
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_bitsandbytes_mps_metal_addf474::{op_name}"
 
1
  import torch
2
+ from . import _bitsandbytes_mps_metal_8a730d9
3
+ ops = torch.ops._bitsandbytes_mps_metal_8a730d9
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_bitsandbytes_mps_metal_8a730d9::{op_name}"
build/torch213-metal-aarch64-darwin/bitsandbytes_mps/__init__.py ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import ctypes
2
+ import importlib.util
3
+ import sys
4
+ from pathlib import Path
5
+ from types import ModuleType
6
+
7
+
8
+ def _import_from_path(file_path: Path) -> ModuleType:
9
+ # We cannot use the module name as-is, after adding it to `sys.modules`,
10
+ # it would also be used for other imports. So, we make a module name that
11
+ # depends on the path for it to be unique using the hex-encoded hash of
12
+ # the path.
13
+ path_hash = "{:x}".format(ctypes.c_size_t(hash(file_path.absolute())).value)
14
+ module_name = path_hash
15
+ spec = importlib.util.spec_from_file_location(module_name, file_path)
16
+ if spec is None:
17
+ raise ImportError(f"Cannot load spec for {module_name} from {file_path}")
18
+ module = importlib.util.module_from_spec(spec)
19
+ if module is None:
20
+ raise ImportError(f"Cannot load module {module_name} from spec")
21
+ sys.modules[module_name] = module
22
+ spec.loader.exec_module(module) # type: ignore
23
+ return module
24
+
25
+
26
+ globals().update(vars(_import_from_path(Path(__file__).parent.parent / "__init__.py")))
build/torch213-metal-aarch64-darwin/metadata.json CHANGED
@@ -1,10 +1,9 @@
1
  {
2
  "name": "bitsandbytes-mps",
3
- "id": "_bitsandbytes_mps_metal_addf474",
4
  "version": 1,
5
  "license": "MIT",
6
  "python-depends": [],
7
- "kernel-depends": [],
8
  "backend": {
9
  "type": "metal"
10
  },
@@ -12,18 +11,19 @@
12
  "algorithm": "sha256",
13
  "files": {
14
  "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
15
- "_bitsandbytes_mps_metal_addf474.abi3.so": "bUMH64GhtT3bY4+LXHFVvt4HNEcquRisTbvneS5e2yk=",
16
- "_ops.py": "l8HruWkDA+SB/OwWA5dmr6G7n6Fk8KstXjEqUH2rh34="
 
17
  }
18
  },
19
  "provenance": {
20
  "kernel-builder": {
21
  "version": "0.17.0-dev0",
22
- "commit": "081dcd473f8eca27226eef1f9c47c45b86c756b5",
23
  "dirty": false
24
  },
25
  "kernel": {
26
- "commit": "addf4741fafb55b4c101b15985dfaeea7c7c2f3a",
27
  "dirty": false
28
  }
29
  }
 
1
  {
2
  "name": "bitsandbytes-mps",
3
+ "id": "_bitsandbytes_mps_metal_8a730d9",
4
  "version": 1,
5
  "license": "MIT",
6
  "python-depends": [],
 
7
  "backend": {
8
  "type": "metal"
9
  },
 
11
  "algorithm": "sha256",
12
  "files": {
13
  "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
14
+ "_bitsandbytes_mps_metal_8a730d9.abi3.so": "cfAWYkqf57b4/LX5r1KYHsJ6+Yrdp1teSvTew85HgBY=",
15
+ "_ops.py": "82wkcg038yTRll4cqulqPLcQZmaDENBQ7E2qGWweQS4=",
16
+ "bitsandbytes_mps/__init__.py": "DFYPlrhXwYjEqCl/8n0SmWGZV8NFml5DPhMjKfv98GY="
17
  }
18
  },
19
  "provenance": {
20
  "kernel-builder": {
21
  "version": "0.17.0-dev0",
22
+ "sha": "81580bb92577f2f7228661ca2a221fc052375709",
23
  "dirty": false
24
  },
25
  "kernel": {
26
+ "sha": "8a730d96c37560ccf1d3e09f7bbccdc886818f33",
27
  "dirty": false
28
  }
29
  }
build/torch213-metal-aarch64-darwin/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHYTCCBuegAwIBAgIUQ3/tvhTAWSD/MusCDAcnQoU8g0wwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI3MDY0MzU1WhcNMjYwODI3MDY1MzU1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEE0RXMoBnW0c73QMWKTbZnG0Sotj+PXVpBeCZYSZybcA0rHylI4b0R4Bj6bbZqRUeQJ+1PSNXz3CfRKHN+r0mqOCBgYwggYCMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUMfd6DdEeHViYmRKH9xwHvkQ4+WkwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wbwYDVR0RAQH/BGUwY4ZhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwGwYKKwYBBAGDvzABBAQNQnVpbGQgKG1hY09TKTArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMHEGCisGAQQBg78wAQkEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAEKBCoMKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBxBgorBgEEAYO/MAESBGMMYWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC1tYWMueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABEwQqDChhZGRmNDc0MWZhZmI1NWI0YzEwMWIxNTk4NWRmYWVlYTdjN2MyZjNhMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwZAYKKwYBBAGDvzABFQRWDFRodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvYWN0aW9ucy9ydW5zLzMzMDQ1MzYxNTQ5L2F0dGVtcHRzLzEwFgYKKwYBBAGDvzABFgQIDAZwdWJsaWMwRgYKKwYBBAGDvzABGAQ4DDZyZXBvOmh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5OnJlZjpyZWZzL2hlYWRzL21haW4wgYoGCisGAQQB1nkCBAIEfAR6AHgAdgDdPTBqxscRMmMZHhyZZzcCokpeuN48rf+HinKALynujgAAAaBB9f4vAAAEAwBHMEUCIA+bB2hS171cl8KnRgzPnbEMvSYg56WVr3SfKrGWNC9gAiEAniEvRw1tOc6avH8z8q+2IUSgmITzez3vRnAwZdr/tq4wCgYIKoZIzj0EAwMDaAAwZQIwLHi+6KXDdCuWgafh6quTBhs237RwCg7c/Y33FGUJLllowywhrBX2VDORja435hQAAjEAxyC6n++7dt1oobEH1WRVdxp9pYeemevlqLHFCnASXGyzoy8jYP/2c/1tS3vJL90w"},"tlogEntries":[{"logIndex":"2613713673","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787813037","inclusionPromise":{"signedEntryTimestamp":"MEQCIFVHu09IwR/B5uOeUgUpHZjLaPZiL2EtA0Y9WogGGhZAAiBMWI/NQDDi9gXPCa18SsggIuGQ3tuz32dJsfpfrAk+TA=="},"inclusionProof":{"logIndex":"2491809411","rootHash":"xzPQgbgfgMjpmKShacoWTUDQDpV5F8xy7vAmDicVHAU=","treeSize":"2491809481","hashes":["J0oAkBbQA3obIsOS2wsw26KUpXxSceFqzxs1VSXj0Xk=","RXA7gC2ZtnNMJM3U/wXY1mlPZYHUV3OMPXPfzZ6NleU=","ynLY6j+1ZuaAKBGCB1JRTahzg+mT5FdVLT7fqfcW5HE=","zB50HU5Ueh74WvjZZVf82uQ7n2Dk+dYQRMmw7dhuTnY=","VEVSsAsU8uyOYggxv7mFYFF5uFxgTipRS8I20AS6yjY=","+3UaMaWzBVuoICbZPShFwz82zEK3Hvdm8mCFs0GD29Q=","1K/bLGMGsOH64b3XtPadtH3cDLylI7VlXR4+i+vYeO0=","KzLFX5cq3aLk8/o1AwbV+IN1tWFKOoCgN6LFzdCDH+M=","pewXOlLm13z+stWwXYc3Ax+15qAkeHwmEpQ9r5zbEyY=","ebRmjq/ZitOFLEaNwqIGX9g3T6j7sSVUbc8wfanIjAs=","vDO4mFDFDlM6fOA7cP9WVtFoAUQVy41uBHeqzT9XUOo=","32KhxEZQsHzhvj5kywpcHXpDe/PdUU5A3cXJaatX5iI=","o4VrcXFJgdy7xEexAoHr67fLnbbPCK6U1/wLV0KLCqc=","83YZ4v/yz1J45+azokpOB8uoQ/Pr1iSMUGjfAg+xPc0=","wP53eMxZdmktSvKrqWMYOGzrZyD5NAaEMhRCrykR34Y=","v9xqun9zxtoZrifGMxqDEeiCg5lbscvvJiAec8LqOsQ=","E7AEzQrWJL3fkxC6doP8J8+b69/ILUYXJjzAAPrp8Oo=","7TfDCaMWgEwSJEZd/e33b24919rF4IDJLmbqNNRNhZs=","0HfdxDt/zGugZLIuHasrdLEW9s8OaTykSSqBEDFQXdw=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2491809481\nxzPQgbgfgMjpmKShacoWTUDQDpV5F8xy7vAmDicVHAU=\n\n— rekor.sigstore.dev wNI9ajBGAiEAnCWqsIYYRx51GY3IXzxjsAa9rj6+Br8dPSkxhxdEcLcCIQCs0rZJfD1Cp1ykvfKpzWaDqwfsb47/owgzovnXQiyzdw==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIwZWFmMzRhYTY2MDY0NjMzZjg3MDcwY2ZjNzE2ZDM5NmYwNWM0ZWY1ZjU0NmI0Njg3NTI3MzIwMWVlYmEwYWM2In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRmFCT3cxcnJ4c3oxR0wvUVNRaEN6SEdYbVlVL0RkdWJkaTUyS1NPNmg2NEFpRUFobGlkTENiR2psZ01CMzhQK3lMb3JqQjUvN0xpaHFlV3lhR2x1RUdCVXJRPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFpWRU5EUW5WbFowRjNTVUpCWjBsVlVUTXZkSFpvVkVGWFUwUXZUWFZ6UTBSQlkyNVJiMVU0WnpCM2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1ROTlJGa3dUWHBWTVZkb1kwNU5hbGwzVDBSSk0wMUVXVEZOZWxVeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZGUlRCU1dFMXZRbTVYTUdNM00xRk5WMHRVWWxwdVJ6QlRiM1JxSzFCWVZuQkNaVU1LV2xsVFdubGlZMEV3Y2toNWJFazBZakJTTkVKcU5tSmlXbkZTVldWUlNpc3hVRk5PV0hvelEyWlNTMGhPSzNJd2JYRlBRMEpuV1hkbloxbERUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZOWm1RMkNrUmtSV1ZJVm1sWmJWSkxTRGw0ZDBoMmExRTBLMWRyZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJKM1dVUldVakJTUVZGSUwwSkhWWGRaTkZwb1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4WE1XaFplVFUxQ2xsWE1YTlJTRXBzV201TmRtRkhWbWhhU0UxMllsZEdjR0pxUVRWQ1oyOXlRbWRGUlVGWlR5OU5RVVZDUWtOMGIyUklVbmRqZW05MlRETlNkbUV5Vm5VS1RHMUdhbVJIYkhaaWJrMTFXakpzTUdGSVZtbGtXRTVzWTIxT2RtSnVVbXhpYmxGMVdUSTVkRTFDT0VkRGFYTkhRVkZSUW1jM09IZEJVVWxGUlZoa2RncGpiWFJ0WWtjNU0xZ3lVbkJqTTBKb1pFZE9iMDFFV1VkRGFYTkhRVkZSUW1jM09IZEJVVTFGUzBkR2ExcEhXVEJPZWxGNFdtMUdiVmxxVlRGWmFsSnFDazFVUVhoWmFrVXhUMVJuTVZwSFdtaGFWMVpvVGpKTk0xbDZTbTFOTWtWM1IzZFpTMHQzV1VKQ1FVZEVkbnBCUWtKQlVVNVJibFp3WWtkUlowdEhNV2dLV1RBNVZFdFVRWEpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0l4YjJSWFpHNWhWelZ1V20xR2FscFRPWEphV0VwMVdsZDRla3hYVG5aaVZ6RXhZbTFzTUFwbFZFRmtRbWR2Y2tKblJVVkJXVTh2VFVGRlIwSkJPWGxhVjFwNlRESm9iRmxYVW5wTU1qRm9ZVmMwZDA5M1dVdExkMWxDUWtGSFJIWjZRVUpEUVZGMENrUkRkRzlrU0ZKM1kzcHZka3d6VW5aaE1sWjFURzFHYW1SSGJIWmliazExV2pKc01HRklWbWxrV0U1c1kyMU9kbUp1VW14aWJsRjFXVEk1ZEUxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZGclJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJVdENRMjlOUzBkR2ExcEhXVEJPZWxGNFdtMUdiVmxxVlRFS1dXcFNhazFVUVhoWmFrVXhUMVJuTVZwSFdtaGFWMVpvVGpKTk0xbDZTbTFOTWtWM1NGRlpTMHQzV1VKQ1FVZEVkbnBCUWtOM1VWQkVRVEZ1WVZoU2J3cGtWMGwwWVVjNWVtUkhWbXROUlVGSFEybHpSMEZSVVVKbk56aDNRVkYzUlUxbmQzZGhTRkl3WTBoTk5reDVPVzVoV0ZKdlpGZEpkVmt5T1hSTU1tZ3hDbG95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFJpV0ZaMVlWaFNOVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVEJGUzJkM2IxbFhVbXNLV21wUk0wNUVSbTFaVjFwcFRsUldhVTVIVFhoTlJFWnBUVlJWTlU5RVZtdGFiVVpzV2xkRk0xbDZaR3BOYlZsNldWUkJaa0puYjNKQ1owVkZRVmxQTHdwTlFVVlBRa0pGVFVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJZVUpuYjNKQ1owVkZRVmxQTDAxQlJWQkNRWGROUTJwRmQwNTZSVEJPZWxVeENrMXFhM2RNWjFsTFMzZFpRa0pCUjBSMmVrRkNSVUZSWjBSQ05XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZDBkQldVdExkMWxDUWtGSFJIWjZRVUpGVVZGTFJFRm5lVTVVWTNsTlJHTXdUWHBDZUVKbmIzSkNaMFZGUVZsUEwwMUJSVk5DUjAxTldWZG9NQXBrU0VKNlQyazRkbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemgxQ2xveWJEQmhTRlpwVEROa2RtTnRkRzFpUnprelkzazVhV1JYYkhOYVF6RjBXVmROZFdWWFJuUmlSVUo1V2xkYWVrd3lhR3haVjFKNlRESXhhR0ZYTkhjS1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmhvV2tkU2JVNUVZekJOVjFwb1dtMUpNVTVYU1RCWmVrVjNUVmRKZUU1VWF6Uk9WMUp0V1ZkV2JBcFpWR1JxVGpKTmVWcHFUbWhOUTBWSFEybHpSMEZSVVVKbk56aDNRVkpSUlVWM2QxSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkYVFWbExDa3QzV1VKQ1FVZEVkbnBCUWtaUlVsZEVSbEp2WkVoU2QyTjZiM1pNTW1Sd1pFZG9NVmxwTldwaU1qQjJZVWhXYmxveWJIVmFNbHBvV1RKVmRtRXlWbmtLWW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNaWlYwNHdZVmM1ZFdONU9YbGtWelY2VEhwTmVrMUVVVEZOZWxsNFRsUlJOVXd5UmpCa1IxWjBZMGhTZWdwTWVrVjNSbWRaUzB0M1dVSkNRVWRFZG5wQlFrWm5VVWxFUVZwM1pGZEtjMkZYVFhkU1oxbExTM2RaUWtKQlIwUjJla0ZDUjBGUk5FUkVXbmxhV0VKMkNrOXRhREZhTW1Sd1ltMWtiVmxYVG14TU1uUnNZMjAxYkdKSVRYUlpNamwwWWxoV2RXRllValZQYmtwc1dtcHdlVnBYV25wTU1taHNXVmRTZWt3eU1XZ0tZVmMwZDJkWmIwZERhWE5IUVZGUlFqRnVhME5DUVVsRlprRlNOa0ZJWjBGa1owUmtVRlJDY1hoelkxSk5iVTFhU0doNVdscDZZME52YTNCbGRVNDBPQXB5Wml0SWFXNUxRVXg1Ym5WcVowRkJRV0ZDUWpsbU5IWkJRVUZGUVhkQ1NFMUZWVU5KUVN0aVFqSm9VekUzTVdOc09FdHVVbWQ2VUc1aVJVMTJVMWxuQ2pVMlYxWnlNMU5tUzNKSFYwNURPV2RCYVVWQmJtbEZkbEozTVhSUFl6Wmhka2c0ZWpoeEt6SkpWVk5uYlVsVWVtVjZNM1pTYmtGM1dtUnlMM1J4TkhjS1EyZFpTVXR2V2tsNmFqQkZRWGROUkdGQlFYZGFVVWwzVEVocEt6WkxXRVJrUTNWWFoyRm1hRFp4ZFZSQ2FITXlNemRTZDBObk4yTXZXVE16UmtkVlNncE1iR3h2ZDNsM2FISkNXREpXUkU5U2FtRTBNelZvVVVGQmFrVkJlSGxETm00ckt6ZGtkREZ2YjJKRlNERlhVbFprZUhBNWNGbGxaVzFsZG14eFRFaEdDa051UVZOWVIzbDZiM2s0YWxsUUx6SmpMekYwVXpOMlNrdzVNSGNLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgPBt9GCnGumn1pcktxtaF+gMmzFlq4tsxdy9kl0EcWkUCFQCJMwYVptjAl2rqmk62M2ZqTZnT/hgPMjAyNjA4MjcwNjQzNTVaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDgyNzA2NDM1NVowLwYJKoZIhvcNAQkEMSIEIKEspy3B+cusQOv9s+keFk0URkanfDzmWfNgE23SiMEpMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMQC5pHwZXME1Q2Gx557EYd7CyVTmO+6i8e12h/PIIOo4KYQEtoaWMYsLcW1Y3N23v6wCMCYRiN4j0MHAevrXHKipFHFKAN4tZzDvHsGJicU30mBNbZXyjT+gaOafMsuuvxqn9Q=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"Dq80qmYGRjP4cHDPxxbTlvBcTvX1RrRodScyAe66CsY="},"signature":"MEUCIFaBOw1rrxsz1GL/QSQhCzHGXmYU/Ddubdi52KSO6h64AiEAhlidLCbGjlgMB38P+yLorjB5/7LihqeWyaGluEGBUrQ="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHYjCCBuegAwIBAgIUboDhyOqf4TDXQHitzb0fMo7iLIUwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNzA4MDkzMTI5WhcNMjYwNzA4MDk0MTI5WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEbNGScRVjVbyI48wKsKu3jJC/p64cpOf7DX2DABXdv2w9n086+0qQE1Jn0nIYapNM/MDtCQKHxBjqHBtn8Hd8A6OCBgYwggYCMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUyXxvUPE7vdElvN6bfJ6QIz+P5a4wHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wbwYDVR0RAQH/BGUwY4ZhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKDhhNzMwZDk2YzM3NTYwY2NmMWQzZTA5ZjdiYmNjZGM4ODY4MThmMzMwGwYKKwYBBAGDvzABBAQNQnVpbGQgKG1hY09TKTArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMHEGCisGAQQBg78wAQkEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAEKBCoMKDhhNzMwZDk2YzM3NTYwY2NmMWQzZTA5ZjdiYmNjZGM4ODY4MThmMzMwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBxBgorBgEEAYO/MAESBGMMYWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC1tYWMueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABEwQqDCg4YTczMGQ5NmMzNzU2MGNjZjFkM2UwOWY3YmJjY2RjODg2ODE4ZjMzMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwZAYKKwYBBAGDvzABFQRWDFRodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvYWN0aW9ucy9ydW5zLzI4OTMxMTkwMjcwL2F0dGVtcHRzLzEwFgYKKwYBBAGDvzABFgQIDAZwdWJsaWMwRgYKKwYBBAGDvzABGAQ4DDZyZXBvOmh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5OnJlZjpyZWZzL2hlYWRzL21haW4wgYoGCisGAQQB1nkCBAIEfAR6AHgAdgDdPTBqxscRMmMZHhyZZzcCokpeuN48rf+HinKALynujgAAAZ9BEXEMAAAEAwBHMEUCIQC6RIvla0ajxga/Mqd1O5RiU8M8VQakldPbL+V8R3sbnAIgOt4PagOKZ7c9rcvDTaOULhrh0X69P8T+Z4c+H7IiIN0wCgYIKoZIzj0EAwMDaQAwZgIxAMqbV53ot49YDhkUgXwaxhJd4pXh8Xw37Kp6osdMMwBamIwMG+5NCnF4IinXW1zmVQIxAJmV91GkyQvAv/TR/o/oZ8LmvQv/MND/+Uhob6VrqelFtHzAu4M/njMTB03Im617RA=="},"tlogEntries":[{"logIndex":"2114050749","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1783503090","inclusionPromise":{"signedEntryTimestamp":"MEQCIGZLLntU8gZX0yR6ZISlgVC6c49M7ITPiqGb5PpjpQZZAiA+awWaZtACT2ORQ+LDc2+rB7JlT8TiYnXMIYTfa0UFdg=="},"inclusionProof":{"logIndex":"1992146487","rootHash":"Dsm1Sd1qYjeB+F5QeOVRxWi4/6HibdXPe+VPzMr3Qgo=","treeSize":"1992146490","hashes":["qq3jKJQcDSaU51lsVlPQZXNriwLmilpti1aVJipTjMo=","Bqow5mOdOcEN79AA0NsHXSIb1asfd7QqIixtJIUI9nQ=","RArOptQELFPIo4aRBeSmOg1j+gKZJmZrkC7X3yDResI=","n3w+f4z/QG9qLDWtKLHsJZnbDsJbNF8UYybL7OH9ix0=","NUV/4PmWk1RBZjj4Z0JOWs8sNVRNwymaYo6Pfr/ro3w=","yatyoVAwxoc5RArW2rBzF1uYwpSU6U/rPH1nALkmM1A=","9+bPTmiSu3OZGW0hgwPUoL9zHFWyt/LfFJnQVZIWgwI=","nFN2p5hPYRGd0Iu8+TAmyhbEAvTJDt1NnWpDAiPixcI=","q8/g5osqGPIuqE5wE2qxfFehh2/Wpt3ybBf0T5+fQUo=","lMHak7Tzg3f53GiOSOK9fErpjV8mG4MKhTxfekY9cKs=","lNWmtLA9nenrjvrgkSDblv+6UJkO/AmP3cVBvAXp5Bo=","tY8nHkJkYkzR0a8crBzP4XX2ys6vaQR/b0ImUbbsFfk=","W8OH9B7+IUIWw6Asm1BMB4ZxX27Q2QG2hpA1yZ+WxAQ=","q0bDCYYM8Kl1AcQlFtAjsMRkDgQDRjrR/EhSNDT6HeI=","Uh9Q3t0owp3nQij7uUVzswxCf/9lo7BQqoqZwxfV0u4=","fZbx4AWo+aeMN9Mbraux+rscCGLJEHB7hXu1e/kRgeo=","D/x3yP7cG/SpQUwSXzpITAOA0UroT/kIiXSF3wR+jT4=","Bcvbbu+tDL+zr1H2q26c2ATmVu7v/f7JIFweUu7qDK8=","WajL3ZhY6ZX9meV3VTH9TkrbM31OF4o6+7foL0Uf6PI=","cyKMKBvHkQtwb2xR5svh+YppANOVdn7X8t4DuKMxICA=","+/VZ56MsIPxMiyLAodzKXo5TEWdQp36z89qLhpzloAo=","daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=","DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n1992146490\nDsm1Sd1qYjeB+F5QeOVRxWi4/6HibdXPe+VPzMr3Qgo=\n\n— rekor.sigstore.dev wNI9ajBGAiEAr2zfRBdWmlr8HbLi9GpljkVv4s9LxWuukek3M4jwnyACIQCQh/58qE2lKG67f6jd2DMTDGVmAIpb0kPXpUhAZojvuQ==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI1NGE4MjhmNmEyMzgzMmJhMWYyYmEwMmJkYWQzODRhNmJiMjllMTFhMjY1Zjc2NDkwNTIyN2Y0MDhiYjdjNmRiIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRTJQVXNFWHhvQ3Q3KzNneWptMDNuVkN6QzE4QTlFd01LSEl3S1dESHdEREFpRUF2NlpERG1YME9UVDkrb2NPQVNoUkJFNnFyZVQwZWtMWDhKMGF6ZzVmd25VPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFpha05EUW5WbFowRjNTVUpCWjBsVlltOUVhSGxQY1dZMFZFUllVVWhwZEhwaU1HWk5iemRwVEVsVmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDU2UVRSTlJHdDZUVlJKTlZkb1kwNU5hbGwzVG5wQk5FMUVhekJOVkVrMVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZpVGtkVFkxSldhbFppZVVrME9IZExjMHQxTTJwS1F5OXdOalJqY0U5bU4wUllNa1FLUVVKWVpIWXlkemx1TURnMkt6QnhVVVV4U200d2JrbFpZWEJPVFM5TlJIUkRVVXRJZUVKcWNVaENkRzQ0U0dRNFFUWlBRMEpuV1hkbloxbERUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlY1V0hoMkNsVlFSVGQyWkVWc2RrNDJZbVpLTmxGSmVpdFFOV0UwZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJKM1dVUldVakJTUVZGSUwwSkhWWGRaTkZwb1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4WE1XaFplVFUxQ2xsWE1YTlJTRXBzV201TmRtRkhWbWhhU0UxMllsZEdjR0pxUVRWQ1oyOXlRbWRGUlVGWlR5OU5RVVZDUWtOMGIyUklVbmRqZW05MlRETlNkbUV5Vm5VS1RHMUdhbVJIYkhaaWJrMTFXakpzTUdGSVZtbGtXRTVzWTIxT2RtSnVVbXhpYmxGMVdUSTVkRTFDT0VkRGFYTkhRVkZSUW1jM09IZEJVVWxGUlZoa2RncGpiWFJ0WWtjNU0xZ3lVbkJqTTBKb1pFZE9iMDFFV1VkRGFYTkhRVkZSUW1jM09IZEJVVTFGUzBSb2FFNTZUWGRhUkdzeVdYcE5NMDVVV1hkWk1rNXRDazFYVVhwYVZFRTFXbXBrYVZsdFRtcGFSMDAwVDBSWk5FMVVhRzFOZWsxM1IzZFpTMHQzV1VKQ1FVZEVkbnBCUWtKQlVVNVJibFp3WWtkUlowdEhNV2dLV1RBNVZFdFVRWEpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0l4YjJSWFpHNWhWelZ1V20xR2FscFRPWEphV0VwMVdsZDRla3hYVG5aaVZ6RXhZbTFzTUFwbFZFRmtRbWR2Y2tKblJVVkJXVTh2VFVGRlIwSkJPWGxhVjFwNlRESm9iRmxYVW5wTU1qRm9ZVmMwZDA5M1dVdExkMWxDUWtGSFJIWjZRVUpEUVZGMENrUkRkRzlrU0ZKM1kzcHZka3d6VW5aaE1sWjFURzFHYW1SSGJIWmliazExV2pKc01HRklWbWxrV0U1c1kyMU9kbUp1VW14aWJsRjFXVEk1ZEUxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZGclJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJVdENRMjlOUzBSb2FFNTZUWGRhUkdzeVdYcE5NMDVVV1hjS1dUSk9iVTFYVVhwYVZFRTFXbXBrYVZsdFRtcGFSMDAwVDBSWk5FMVVhRzFOZWsxM1NGRlpTMHQzV1VKQ1FVZEVkbnBCUWtOM1VWQkVRVEZ1WVZoU2J3cGtWMGwwWVVjNWVtUkhWbXROUlVGSFEybHpSMEZSVVVKbk56aDNRVkYzUlUxbmQzZGhTRkl3WTBoTk5reDVPVzVoV0ZKdlpGZEpkVmt5T1hSTU1tZ3hDbG95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFJpV0ZaMVlWaFNOVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVEJGUzJkM2IwOUhSVE1LVFhwQ2EwOVVXbXBOZW1NeFRtcENhbGt5V1hoYVJFNXNUVVJzYlU0eVNtbFpNazVyV1hwbk5FNXFaM2hQUjFsNlRYcEJaa0puYjNKQ1owVkZRVmxQTHdwTlFVVlBRa0pGVFVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJZVUpuYjNKQ1owVkZRVmxQTDAxQlJWQkNRWGROUTJwRmQwNTZSVEJPZWxVeENrMXFhM2RNWjFsTFMzZFpRa0pCUjBSMmVrRkNSVUZSWjBSQ05XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZDBkQldVdExkMWxDUWtGSFJIWjZRVUpGVVZGTFJFRm5lVTVVWTNsTlJHTXdUWHBDZUVKbmIzSkNaMFZGUVZsUEwwMUJSVk5DUjAxTldWZG9NQXBrU0VKNlQyazRkbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemgxQ2xveWJEQmhTRlpwVEROa2RtTnRkRzFpUnprelkzazVhV1JYYkhOYVF6RjBXVmROZFdWWFJuUmlSVUo1V2xkYWVrd3lhR3haVjFKNlRESXhhR0ZYTkhjS1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmMwV1ZSamVrMUhVVFZPYlUxNlRucFZNazFIVG1wYWFrWnJUVEpWZDA5WFdUTlpiVXBxV1RKU2FncFBSR2N5VDBSRk5GcHFUWHBOUTBWSFEybHpSMEZSVVVKbk56aDNRVkpSUlVWM2QxSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkYVFWbExDa3QzV1VKQ1FVZEVkbnBCUWtaUlVsZEVSbEp2WkVoU2QyTjZiM1pNTW1Sd1pFZG9NVmxwTldwaU1qQjJZVWhXYmxveWJIVmFNbHBvV1RKVmRtRXlWbmtLWW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNaWlYwNHdZVmM1ZFdONU9YbGtWelY2VEhwSk5FOVVUWGhOVkd0M1RXcGpkMHd5UmpCa1IxWjBZMGhTZWdwTWVrVjNSbWRaUzB0M1dVSkNRVWRFZG5wQlFrWm5VVWxFUVZwM1pGZEtjMkZYVFhkU1oxbExTM2RaUWtKQlIwUjJla0ZDUjBGUk5FUkVXbmxhV0VKMkNrOXRhREZhTW1Sd1ltMWtiVmxYVG14TU1uUnNZMjAxYkdKSVRYUlpNamwwWWxoV2RXRllValZQYmtwc1dtcHdlVnBYV25wTU1taHNXVmRTZWt3eU1XZ0tZVmMwZDJkWmIwZERhWE5IUVZGUlFqRnVhME5DUVVsRlprRlNOa0ZJWjBGa1owUmtVRlJDY1hoelkxSk5iVTFhU0doNVdscDZZME52YTNCbGRVNDBPQXB5Wml0SWFXNUxRVXg1Ym5WcVowRkJRVm81UWtWWVJVMUJRVUZGUVhkQ1NFMUZWVU5KVVVNMlVrbDJiR0V3WVdwNFoyRXZUWEZrTVU4MVVtbFZPRTA0Q2xaUllXdHNaRkJpVEN0V09GSXpjMkp1UVVsblQzUTBVR0ZuVDB0YU4yTTVjbU4yUkZSaFQxVk1hSEpvTUZnMk9WQTRWQ3RhTkdNclNEZEphVWxPTUhjS1EyZFpTVXR2V2tsNmFqQkZRWGROUkdGUlFYZGFaMGw0UVUxeFlsWTFNMjkwTkRsWlJHaHJWV2RZZDJGNGFFcGtOSEJZYURoWWR6TTNTM0EyYjNOa1RRcE5kMEpoYlVsM1RVY3JOVTVEYmtZMFNXbHVXRmN4ZW0xV1VVbDRRVXB0VmpreFIydDVVWFpCZGk5VVVpOXZMMjlhT0V4dGRsRjJMMDFPUkM4clZXaHZDbUkyVm5KeFpXeEdkRWg2UVhVMFRTOXVhazFVUWpBelNXMDJNVGRTUVQwOUNpMHRMUzB0UlU1RUlFTkZVbFJKUmtsRFFWUkZMUzB0TFMwSyJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg4Rb29rHiQhKMp3K0EIiUe/FB80NdU/7o+kL+57XWsboCFDd9HTAdO4yg2IqqgOWpG6yJcF2bGA8yMDI2MDcwODA5MzEzMFowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwNzA4MDkzMTMwWjAvBgkqhkiG9w0BCQQxIgQgIDcmKJvHWIX7P3noDr4ll6RBD50p6t4aZgPA7wJPW9EwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIwKu3UEzlSAYqWFZiwn191MI72e/c4D4AyeghBBLbdKfr6LlF1ncSIHeOMXDam/2EpAjEA03yNFpzLdCoulGOdc44soDOHe0hqrV5/N14Kw3+LACNfSLYbRHa9o1LqwM/Po8m8"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"VKgo9qI4MrofK6Ar2tOEprsp4RomX3ZJBSJ/QIu3xts="},"signature":"MEUCIE2PUsEXxoCt7+3gyjm03nVCzC18A9EwMKHIwKWDHwDDAiEAv6ZDDmX0OTT9+ocOAShRBE6qreT0ekLX8J0azg5fwnU="}}
build/torch214-metal-aarch64-darwin/__init__.py DELETED
@@ -1,165 +0,0 @@
1
- from typing import Optional, Tuple
2
-
3
- import torch
4
-
5
- from ._ops import ops
6
-
7
- # Quant type constants (match bitsandbytes DataType_t)
8
- FP4 = 1
9
- NF4 = 2
10
-
11
-
12
- def quantize_4bit(
13
- input: torch.Tensor,
14
- blocksize: int = 64,
15
- quant_type: int = NF4,
16
- ) -> Tuple[torch.Tensor, torch.Tensor]:
17
- """Blockwise 4-bit quantization using NF4 or FP4 codebook.
18
-
19
- Args:
20
- input: Input tensor on MPS device (float16, bfloat16, or float32).
21
- blocksize: Number of elements per quantization block (64 or 128).
22
- quant_type: FP4 (1) or NF4 (2).
23
-
24
- Returns:
25
- Tuple of (packed, absmax):
26
- packed: uint8 tensor of packed 4-bit values [numel/2].
27
- absmax: float32 tensor of per-block max absolute values.
28
- """
29
- return ops.bnb_quantize_4bit(input, blocksize, quant_type)
30
-
31
-
32
- def dequantize_4bit(
33
- packed: torch.Tensor,
34
- absmax: torch.Tensor,
35
- blocksize: int = 64,
36
- quant_type: int = NF4,
37
- numel: int = -1,
38
- output_dtype: torch.dtype = torch.float16,
39
- ) -> torch.Tensor:
40
- """Blockwise 4-bit dequantization using NF4 or FP4 codebook.
41
-
42
- Args:
43
- packed: uint8 tensor of packed 4-bit values.
44
- absmax: float32 tensor of per-block max absolute values.
45
- blocksize: Number of elements per quantization block (64 or 128).
46
- quant_type: FP4 (1) or NF4 (2).
47
- numel: Number of elements in the original tensor.
48
- If -1, inferred as packed.numel() * 2.
49
- output_dtype: Output scalar type.
50
-
51
- Returns:
52
- Dequantized tensor.
53
- """
54
- if numel < 0:
55
- numel = packed.numel() * 2
56
- return ops.bnb_dequantize_4bit(
57
- packed, absmax, blocksize, quant_type, numel, output_dtype
58
- )
59
-
60
-
61
- def gemv_4bit(
62
- x: torch.Tensor,
63
- w: torch.Tensor,
64
- absmax: torch.Tensor,
65
- output_features: int,
66
- blocksize: int = 64,
67
- quant_type: int = NF4,
68
- ) -> torch.Tensor:
69
- """Fused matrix-vector multiply with 4-bit quantized weights.
70
-
71
- Computes y = dequant(W) @ x, where W is blockwise NF4/FP4 quantized.
72
-
73
- Args:
74
- x: Input vector [..., K] on MPS device.
75
- w: Packed weight matrix [N, K/2] (uint8) on MPS device.
76
- absmax: Per-block scales [N, ceil(K/blocksize)] (float32).
77
- output_features: Number of output features (N).
78
- blocksize: Quantization block size (64 or 128).
79
- quant_type: FP4 (1) or NF4 (2).
80
-
81
- Returns:
82
- Output tensor [..., N].
83
- """
84
- return ops.bnb_gemv_4bit(x, w, absmax, blocksize, quant_type, output_features)
85
-
86
-
87
- def gemm_4bit(
88
- x: torch.Tensor,
89
- w: torch.Tensor,
90
- absmax: torch.Tensor,
91
- output_features: int,
92
- blocksize: int = 64,
93
- quant_type: int = NF4,
94
- ) -> torch.Tensor:
95
- """Fused matrix-matrix multiply with 4-bit quantized transposed weights.
96
-
97
- Computes Y = X @ dequant(W).T, where W is blockwise NF4/FP4 quantized.
98
-
99
- Args:
100
- x: Input matrix [..., M, K] on MPS device.
101
- w: Packed weight matrix [N, K/2] (uint8) on MPS device.
102
- absmax: Per-block scales [N, ceil(K/blocksize)] (float32).
103
- output_features: Number of output features (N).
104
- blocksize: Quantization block size (64 or 128).
105
- quant_type: FP4 (1) or NF4 (2).
106
-
107
- Returns:
108
- Output tensor [..., M, N].
109
- """
110
- return ops.bnb_gemm_4bit(x, w, absmax, blocksize, quant_type, output_features)
111
-
112
-
113
- def linear_4bit(
114
- x: torch.Tensor,
115
- w: torch.Tensor,
116
- absmax: torch.Tensor,
117
- output_features: int,
118
- blocksize: int = 64,
119
- quant_type: int = NF4,
120
- bias: Optional[torch.Tensor] = None,
121
- ) -> torch.Tensor:
122
- """4-bit quantized linear layer (auto-selects GEMV or GEMM).
123
-
124
- Args:
125
- x: Input tensor on MPS device.
126
- w: Packed weight [N, K/2] (uint8).
127
- absmax: Scales [N, ceil(K/blocksize)] (float32).
128
- output_features: N.
129
- blocksize: 64 or 128.
130
- quant_type: FP4 (1) or NF4 (2).
131
- bias: Optional bias [N].
132
-
133
- Returns:
134
- Output tensor.
135
- """
136
- input_1d = x.dim() == 1
137
- if input_1d or (x.dim() >= 2 and x.size(-2) == 1):
138
- x_flat = x.view(x.size(-1)) if input_1d else x.squeeze(-2)
139
- y = gemv_4bit(
140
- x_flat,
141
- w,
142
- absmax,
143
- output_features,
144
- blocksize,
145
- quant_type,
146
- )
147
- if input_1d:
148
- y = y.squeeze(0)
149
- elif x.dim() >= 2:
150
- y = y.unsqueeze(-2)
151
- else:
152
- y = gemm_4bit(x, w, absmax, output_features, blocksize, quant_type)
153
-
154
- if bias is not None:
155
- y = y + bias
156
-
157
- return y
158
-
159
- __all__ = [
160
- "quantize_4bit",
161
- "dequantize_4bit",
162
- "gemv_4bit",
163
- "gemm_4bit",
164
- "linear_4bit",
165
- ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
build/torch214-metal-aarch64-darwin/_bitsandbytes_mps_metal_addf474.abi3.so DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:418fc61987161e4b3c7c01eeae38c1004dc8414a17dde960191f57f54ebbb5c2
3
- size 846168
 
 
 
 
build/torch214-metal-aarch64-darwin/_ops.py DELETED
@@ -1,9 +0,0 @@
1
- import torch
2
- from . import _bitsandbytes_mps_metal_addf474
3
- ops = torch.ops._bitsandbytes_mps_metal_addf474
4
-
5
- def add_op_namespace_prefix(op_name: str):
6
- """
7
- Prefix op by namespace.
8
- """
9
- return f"_bitsandbytes_mps_metal_addf474::{op_name}"
 
 
 
 
 
 
 
 
 
 
build/torch214-metal-aarch64-darwin/metadata.json DELETED
@@ -1,30 +0,0 @@
1
- {
2
- "name": "bitsandbytes-mps",
3
- "id": "_bitsandbytes_mps_metal_addf474",
4
- "version": 1,
5
- "license": "MIT",
6
- "python-depends": [],
7
- "kernel-depends": [],
8
- "backend": {
9
- "type": "metal"
10
- },
11
- "digest": {
12
- "algorithm": "sha256",
13
- "files": {
14
- "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
15
- "_bitsandbytes_mps_metal_addf474.abi3.so": "QY/GGYcWHks8fAHurjjBAE3IQUoX3elgGR9X9U67tcI=",
16
- "_ops.py": "l8HruWkDA+SB/OwWA5dmr6G7n6Fk8KstXjEqUH2rh34="
17
- }
18
- },
19
- "provenance": {
20
- "kernel-builder": {
21
- "version": "0.17.0-dev0",
22
- "commit": "081dcd473f8eca27226eef1f9c47c45b86c756b5",
23
- "dirty": false
24
- },
25
- "kernel": {
26
- "commit": "addf4741fafb55b4c101b15985dfaeea7c7c2f3a",
27
- "dirty": false
28
- }
29
- }
30
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
build/torch214-metal-aarch64-darwin/metadata.json.sigstore DELETED
@@ -1 +0,0 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHYzCCBuigAwIBAgIUZcGLMgcrnFxE4sfYlx2NKdRkGLYwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI3MDY0MzUyWhcNMjYwODI3MDY1MzUyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEKNJ5TAtaDEdPfIbONJX7hwV+ApjgvfGam20JRh93owtQ49WbiRfhqSK75GL8IoH5uHGQ79FqrxjoPkXX42fxqaOCBgcwggYDMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUh7qm8AjWK4VQBAoikeccDYQzEkYwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wbwYDVR0RAQH/BGUwY4ZhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwGwYKKwYBBAGDvzABBAQNQnVpbGQgKG1hY09TKTArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMHEGCisGAQQBg78wAQkEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAEKBCoMKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBxBgorBgEEAYO/MAESBGMMYWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC1tYWMueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABEwQqDChhZGRmNDc0MWZhZmI1NWI0YzEwMWIxNTk4NWRmYWVlYTdjN2MyZjNhMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwZAYKKwYBBAGDvzABFQRWDFRodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvYWN0aW9ucy9ydW5zLzMzMDQ1MzYxNTQ5L2F0dGVtcHRzLzEwFgYKKwYBBAGDvzABFgQIDAZwdWJsaWMwRgYKKwYBBAGDvzABGAQ4DDZyZXBvOmh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5OnJlZjpyZWZzL2hlYWRzL21haW4wgYsGCisGAQQB1nkCBAIEfQR7AHkAdwDdPTBqxscRMmMZHhyZZzcCokpeuN48rf+HinKALynujgAAAaBB9fQQAAAEAwBIMEYCIQCR1PVrgTOvlkqEihtt1NRA89nEE/CpgazzLEwYqRtm3gIhAK9I2xzNjPlVU47MOR9veOSjaWR45KzWiWhC4OxHju7WMAoGCCqGSM49BAMDA2kAMGYCMQCqAe1VnFeSOCXDFe8OXWVdIgw3BK42vihJ1rxWFR8MD08314oxvi8wCN3kMhSwn+ICMQCstvdfkITc/WGyDzmxr9LOStC1xhHkIqI3kN9185V2yp9ugFKxOQWvlx9IV0+ZY70="},"tlogEntries":[{"logIndex":"2613712459","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787813033","inclusionPromise":{"signedEntryTimestamp":"MEYCIQD9z0ebo2Pca0ReNw7X7+xdYpeobebmglaJl3N2NfwE9gIhAPEJ6JCVqrmkaTEpdQ6WlfaMX5BWXc2VXzkiI/wHuDTM"},"inclusionProof":{"logIndex":"2491808197","rootHash":"W4SBja8xfW+QF2cs+qUuAP8bX7+FJXtDqATT+KRSMsM=","treeSize":"2491808231","hashes":["9JrhUBulrcEjkI68H6M6ffvbvI1odxK4eeM5/xDPZn8=","PSd1ALiotuUNSA6spXqlfnWj9957msbQpAcJwsfJPss=","e1oD2gS6YnOL81CSD7DxqI9svJiu0w7jHFKOqOkTmZs=","hB4jju1ui/pOqMSAc04GOus//2MJWl78qbE0QRTqOr4=","ePeREu7x5G5Kxv0+bLqdptFeyb1GSg26+hTWhpqXhPU=","z6vLU4N46zKGJGN9PqIBOyrS0aR11eT3HCMSE3kuDJo=","ODAE5/NIPftExA03YV0kjKdDtgAD7DFjUG3R9kzmA1c=","2dKG2rgh0qPP+bPZXrx6ciT2X6z5L1R/NLbGMsASxh4=","UiaYlQiyqNGJSycpBf1BUQajKWWSZ9ScCPtjsSTcVOE=","vDO4mFDFDlM6fOA7cP9WVtFoAUQVy41uBHeqzT9XUOo=","32KhxEZQsHzhvj5kywpcHXpDe/PdUU5A3cXJaatX5iI=","o4VrcXFJgdy7xEexAoHr67fLnbbPCK6U1/wLV0KLCqc=","83YZ4v/yz1J45+azokpOB8uoQ/Pr1iSMUGjfAg+xPc0=","wP53eMxZdmktSvKrqWMYOGzrZyD5NAaEMhRCrykR34Y=","v9xqun9zxtoZrifGMxqDEeiCg5lbscvvJiAec8LqOsQ=","E7AEzQrWJL3fkxC6doP8J8+b69/ILUYXJjzAAPrp8Oo=","7TfDCaMWgEwSJEZd/e33b24919rF4IDJLmbqNNRNhZs=","0HfdxDt/zGugZLIuHasrdLEW9s8OaTykSSqBEDFQXdw=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2491808231\nW4SBja8xfW+QF2cs+qUuAP8bX7+FJXtDqATT+KRSMsM=\n\n— rekor.sigstore.dev wNI9ajBEAiBQe8vhCWEX6YXD3TLy5c7WkuDH5lBbhhKUXls73uhKgAIgDlbkPqj4d2X4jD0E9ocq4/YhEArxsCg+qwjru6LniHo=\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJmODRhNzUyNTYwY2M2ZWQwMDE1MTc0MTg1MTlmNmQxMTBiYzZkNTdiMGQ0Y2NlZGRhMGUyOTFjZjM2M2M4ODQxIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUURJOHV5TnVqQ0hFZEFJQnM2RDFiQjVtNUcwWUhVZEZleWxVWTh6TEJKY0d3SWhBSUpLUWE0bkh2TXg1N0Q2L1NGTXh0dFBmWHoyREh4d0NsQjE5dmV6SVFvcSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFpla05EUW5WcFowRjNTVUpCWjBsVldtTkhURTFuWTNKdVJuaEZOSE5tV1d4NE1rNUxaRkpyUjB4WmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1ROTlJGa3dUWHBWZVZkb1kwNU5hbGwzVDBSSk0wMUVXVEZOZWxWNVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZMVGtvMVZFRjBZVVJGWkZCbVNXSlBUa3BZTjJoM1ZpdEJjR3BuZG1aSFlXMHlNRW9LVW1nNU0yOTNkRkUwT1ZkaWFWSm1hSEZUU3pjMVIwdzRTVzlJTlhWSVIxRTNPVVp4Y25ocWIxQnJXRmcwTW1aNGNXRlBRMEpuWTNkbloxbEVUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZvTjNGdENqaEJhbGRMTkZaUlFrRnZhV3RsWTJORVdWRjZSV3RaZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJKM1dVUldVakJTUVZGSUwwSkhWWGRaTkZwb1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4WE1XaFplVFUxQ2xsWE1YTlJTRXBzV201TmRtRkhWbWhhU0UxMllsZEdjR0pxUVRWQ1oyOXlRbWRGUlVGWlR5OU5RVVZDUWtOMGIyUklVbmRqZW05MlRETlNkbUV5Vm5VS1RHMUdhbVJIYkhaaWJrMTFXakpzTUdGSVZtbGtXRTVzWTIxT2RtSnVVbXhpYmxGMVdUSTVkRTFDT0VkRGFYTkhRVkZSUW1jM09IZEJVVWxGUlZoa2RncGpiWFJ0WWtjNU0xZ3lVbkJqTTBKb1pFZE9iMDFFV1VkRGFYTkhRVkZSUW1jM09IZEJVVTFGUzBkR2ExcEhXVEJPZWxGNFdtMUdiVmxxVlRGWmFsSnFDazFVUVhoWmFrVXhUMVJuTVZwSFdtaGFWMVpvVGpKTk0xbDZTbTFOTWtWM1IzZFpTMHQzV1VKQ1FVZEVkbnBCUWtKQlVVNVJibFp3WWtkUlowdEhNV2dLV1RBNVZFdFVRWEpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0l4YjJSWFpHNWhWelZ1V20xR2FscFRPWEphV0VwMVdsZDRla3hYVG5aaVZ6RXhZbTFzTUFwbFZFRmtRbWR2Y2tKblJVVkJXVTh2VFVGRlIwSkJPWGxhVjFwNlRESm9iRmxYVW5wTU1qRm9ZVmMwZDA5M1dVdExkMWxDUWtGSFJIWjZRVUpEUVZGMENrUkRkRzlrU0ZKM1kzcHZka3d6VW5aaE1sWjFURzFHYW1SSGJIWmliazExV2pKc01HRklWbWxrV0U1c1kyMU9kbUp1VW14aWJsRjFXVEk1ZEUxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZGclJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJVdENRMjlOUzBkR2ExcEhXVEJPZWxGNFdtMUdiVmxxVlRFS1dXcFNhazFVUVhoWmFrVXhUMVJuTVZwSFdtaGFWMVpvVGpKTk0xbDZTbTFOTWtWM1NGRlpTMHQzV1VKQ1FVZEVkbnBCUWtOM1VWQkVRVEZ1WVZoU2J3cGtWMGwwWVVjNWVtUkhWbXROUlVGSFEybHpSMEZSVVVKbk56aDNRVkYzUlUxbmQzZGhTRkl3WTBoTk5reDVPVzVoV0ZKdlpGZEpkVmt5T1hSTU1tZ3hDbG95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFJpV0ZaMVlWaFNOVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVEJGUzJkM2IxbFhVbXNLV21wUk0wNUVSbTFaVjFwcFRsUldhVTVIVFhoTlJFWnBUVlJWTlU5RVZtdGFiVVpzV2xkRk0xbDZaR3BOYlZsNldWUkJaa0puYjNKQ1owVkZRVmxQTHdwTlFVVlBRa0pGVFVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJZVUpuYjNKQ1owVkZRVmxQTDAxQlJWQkNRWGROUTJwRmQwNTZSVEJPZWxVeENrMXFhM2RNWjFsTFMzZFpRa0pCUjBSMmVrRkNSVUZSWjBSQ05XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZDBkQldVdExkMWxDUWtGSFJIWjZRVUpGVVZGTFJFRm5lVTVVWTNsTlJHTXdUWHBDZUVKbmIzSkNaMFZGUVZsUEwwMUJSVk5DUjAxTldWZG9NQXBrU0VKNlQyazRkbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemgxQ2xveWJEQmhTRlpwVEROa2RtTnRkRzFpUnprelkzazVhV1JYYkhOYVF6RjBXVmROZFdWWFJuUmlSVUo1V2xkYWVrd3lhR3haVjFKNlRESXhhR0ZYTkhjS1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmhvV2tkU2JVNUVZekJOVjFwb1dtMUpNVTVYU1RCWmVrVjNUVmRKZUU1VWF6Uk9WMUp0V1ZkV2JBcFpWR1JxVGpKTmVWcHFUbWhOUTBWSFEybHpSMEZSVVVKbk56aDNRVkpSUlVWM2QxSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkYVFWbExDa3QzV1VKQ1FVZEVkbnBCUWtaUlVsZEVSbEp2WkVoU2QyTjZiM1pNTW1Sd1pFZG9NVmxwTldwaU1qQjJZVWhXYmxveWJIVmFNbHBvV1RKVmRtRXlWbmtLWW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNaWlYwNHdZVmM1ZFdONU9YbGtWelY2VEhwTmVrMUVVVEZOZWxsNFRsUlJOVXd5UmpCa1IxWjBZMGhTZWdwTWVrVjNSbWRaUzB0M1dVSkNRVWRFZG5wQlFrWm5VVWxFUVZwM1pGZEtjMkZYVFhkU1oxbExTM2RaUWtKQlIwUjJla0ZDUjBGUk5FUkVXbmxhV0VKMkNrOXRhREZhTW1Sd1ltMWtiVmxYVG14TU1uUnNZMjAxYkdKSVRYUlpNamwwWWxoV2RXRllValZQYmtwc1dtcHdlVnBYV25wTU1taHNXVmRTZWt3eU1XZ0tZVmMwZDJkWmMwZERhWE5IUVZGUlFqRnVhME5DUVVsRlpsRlNOMEZJYTBGa2QwUmtVRlJDY1hoelkxSk5iVTFhU0doNVdscDZZME52YTNCbGRVNDBPQXB5Wml0SWFXNUxRVXg1Ym5WcVowRkJRV0ZDUWpsbVVWRkJRVUZGUVhkQ1NVMUZXVU5KVVVOU01WQldjbWRVVDNac2EzRkZhV2gwZERGT1VrRTRPVzVGQ2tVdlEzQm5ZWHA2VEVWM1dYRlNkRzB6WjBsb1FVczVTVEo0ZWs1cVVHeFdWVFEzVFU5U09YWmxUMU5xWVZkU05EVkxlbGRwVjJoRE5FOTRTR3AxTjFjS1RVRnZSME5EY1VkVFRUUTVRa0ZOUkVFeWEwRk5SMWxEVFZGRGNVRmxNVlp1Um1WVFQwTllSRVpsT0U5WVYxWmtTV2QzTTBKTE5ESjJhV2hLTVhKNFZ3cEdVamhOUkRBNE16RTBiM2gyYVRoM1EwNHphMDFvVTNkdUswbERUVkZEYzNSMlpHWnJTVlJqTDFkSGVVUjZiWGh5T1V4UFUzUkRNWGhvU0d0SmNVa3pDbXRPT1RFNE5WWXllWEE1ZFdkR1MzaFBVVmQyYkhnNVNWWXdLMXBaTnpBOUNpMHRMUzB0UlU1RUlFTkZVbFJKUmtsRFFWUkZMUzB0TFMwSyJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgVkB2H01gNQcZEUP3h170BRAc8zGiXhG1FIS20kcxyw8CFDK6yg8pV8Pa4N/z0pnJa5eKnRcPGA8yMDI2MDgyNzA2NDM1M1owAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI3MDY0MzUzWjAvBgkqhkiG9w0BCQQxIgQgWLZMDsDJUbiw6G9CErZLoOBDHDlz4z3nn3jL0Dp9mg8wgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIxAOOvvlBlCZC63r7yl8xRqqBRVHTgznE/R5lDra6+EeXcKTBqxVuQL28SHV9P4WdrVQIwH9rhiCzma/snYvlavLJOWKrtnjujQ48yOkfdfWXJ/P1JqNlNcVy2RQ1ewuhxsRl3"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"+Ep1JWDMbtABUXQYUZ9tEQvG1XsNTM7doOKRzzY8iEE="},"signature":"MEYCIQDI8uyNujCHEdAIBs6D1bB5m5G0YHUdFeylUY8zLBJcGwIhAIJKQa4nHvMx57D6/SFMxttPfXz2DHxwClB19vezIQoq"}}