.gitattributes CHANGED
@@ -55,8 +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
61
- build/torch213-metal-aarch64-darwin/_bitsandbytes_mps_metal_89d4054.abi3.so filter=lfs diff=lfs merge=lfs -text
62
- build/torch214-metal-aarch64-darwin/_bitsandbytes_mps_metal_89d4054.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_89d4054.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:788aa156d82f0fb61b191dc49afb7bddf8173d1a557c419b43c5bc48d8af7dc5
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_89d4054
3
- ops = torch.ops._bitsandbytes_mps_metal_89d4054
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_bitsandbytes_mps_metal_89d4054::{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,11 +1,9 @@
1
  {
2
  "name": "bitsandbytes-mps",
3
- "id": "_bitsandbytes_mps_metal_89d4054",
4
  "version": 1,
5
- "kernels-minver": "0.14.0",
6
  "license": "MIT",
7
  "python-depends": [],
8
- "kernel-depends": [],
9
  "backend": {
10
  "type": "metal"
11
  },
@@ -13,18 +11,19 @@
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
16
- "_bitsandbytes_mps_metal_89d4054.abi3.so": "eIqhVtgvD7YbGR3Emvt73fgXPRpVfEGbQ8W8SNivfcU=",
17
- "_ops.py": "eCYR64sg6wrqSpsCqWHIUbxBAqW435bZJFT0qFYA1m8="
 
18
  }
19
  },
20
  "provenance": {
21
  "kernel-builder": {
22
  "version": "0.17.0-dev0",
23
- "commit": "a7f0afdb29a6a3372b1d47180cc0c182454c5e3b",
24
  "dirty": false
25
  },
26
  "kernel": {
27
- "commit": "89d4054f3755039d5474cfed03f06de026ee2ce7",
28
  "dirty": false
29
  }
30
  }
 
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":"MIIHXzCCBuagAwIBAgIUEsKR5k2F1yPxMQLazbt4oh0zv2kwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwOTA3MDkzMDA1WhcNMjYwOTA3MDk0MDA1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7Cv+OYP7jikr/w+P6mjwUPiC7+Mp5kfSVSKt/E9X3UaI4VOPahwWiCH8VYDISWcp4xML1BF5jhtW3QXilADRGaOCBgUwggYBMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUI3HbdkW4a/KFzn7ZS3NhIu+VDX8wHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wbwYDVR0RAQH/BGUwY4ZhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKDg5ZDQwNTRmMzc1NTAzOWQ1NDc0Y2ZlZDAzZjA2ZGUwMjZlZTJjZTcwGwYKKwYBBAGDvzABBAQNQnVpbGQgKG1hY09TKTArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMHEGCisGAQQBg78wAQkEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAEKBCoMKDg5ZDQwNTRmMzc1NTAzOWQ1NDc0Y2ZlZDAzZjA2ZGUwMjZlZTJjZTcwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoODlkNDA1NGYzNzU1MDM5ZDU0NzRjZmVkMDNmMDZkZTAyNmVlMmNlNzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBxBgorBgEEAYO/MAESBGMMYWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC1tYWMueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABEwQqDCg4OWQ0MDU0ZjM3NTUwMzlkNTQ3NGNmZWQwM2YwNmRlMDI2ZWUyY2U3MCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwZAYKKwYBBAGDvzABFQRWDFRodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvYWN0aW9ucy9ydW5zLzM0MTAzMTcwNjkyL2F0dGVtcHRzLzEwFgYKKwYBBAGDvzABFgQIDAZwdWJsaWMwRgYKKwYBBAGDvzABGAQ4DDZyZXBvOmh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5OnJlZjpyZWZzL2hlYWRzL21haW4wgYkGCisGAQQB1nkCBAIEewR5AHcAdQDdPTBqxscRMmMZHhyZZzcCokpeuN48rf+HinKALynujgAAAaB7NBL3AAAEAwBGMEQCICgYWhLCaJCf4y3ZGTz0XlLxRmYB3C2d506s6IDO7WpLAiANZYnka8juyAHmd6ifb3Xu8UZUkaPoZeLNxFt/8g9Z0zAKBggqhkjOPQQDAwNnADBkAjBV3IP/fD4A+46PRg0/bIcGzfJct11Q+849M3LCp5AbvXtqyXpHa8+VB2wMCk+hP8kCMERhOM3n0UeJq3UBHgUAiNlfoRjfuFIjzm7CaZehMmRV5Ye87GpJBGrR5f2oi2vS5A=="},"tlogEntries":[{"logIndex":"2749100618","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1788773405","inclusionPromise":{"signedEntryTimestamp":"MEUCIQCkR3PiMbkAHY12sITo50v8HzP1wkHYaTXDJn/yMlSrAQIgNcaHHEtQgW3aSzh1Eq8zGXe/lSnE8GEQJ/FXlraxv6U="},"inclusionProof":{"logIndex":"2627196356","rootHash":"7ozpDS7RJltWC3Y87+D+1hVzgZKEXnHCtCRnQJJx/S0=","treeSize":"2627196457","hashes":["b9V/d1vw224Uj8tAN1bKWp8aZweZg0R7AK7DuK0CtVg=","bpSYuRrKXM5DWXJonS++itOWzVdabgKwEszeptTfFXg=","ri1C1y5SeoCshC4gykWP2p2AKcvNQm8jyLP/gxPPyAY=","AVpt/41h8gYMa8r3/6TjuZVNd6im5sOL2fhjKgSBovY=","ggn5mPFD5CqDR/O9UFFH6knYm4eazNgFiDJB1hKuqLQ=","xuyW/DuWQnAAaoNdRpHf4s8ning+KAEQo6jpC2JalSk=","1I0ztpwOcXnRldGQ0Tsj7x4YUAhidVVzNLNFy9Vp2lY=","sBF4c/++vdZKKp6dU5niwYyD89RUabVWMU2t8hRfa9s=","fnk2z4FTLn4I5nFrT13Gv2dF0kIF7fvRdBhF/zHVgdo=","5fFLSbbpdICLEi4OvhBDtzjCjJc9t3M4GqAgbndhbi8=","gwfasP/TJab5Cvtt+/tMBexO1cQPUxTQYVeDqUifdcI=","/PiCs5+cl7D9ZwxQHCNLza7k9yZiaWfgjHrCROrtH5c=","vJH9DwxUiqR7d5Iv86gJqaAG7mgpK8BhNha5RlVSXoE=","rC7UvsBWtIMUY1hF7VAc1IuD9m+gPgcwdArHV3COAxg=","ch0aD372ymT2fXHxbf+epFKHoFZu8e2qER+xxSCbPyc=","yLcHDDCEu1BAK+IfkRJ79X8cbQ0Ewt8a51AAHz4ItBA=","sFs5ZPVs0GrIELeO+PLKnaw6Xqx6rrLLSsxTCL7uEy4=","PeXZrqD3jq5qFdOmhUHJ8en1qzGlcp6bfMESzIwc3z0=","lKSWYj364IeG0b10DY/iYLgSeWiNkybEZLzd49gUFSo=","7tD2K8mAqGTMENrP2YXWz71BeTWQPCiYd3CESAgQLz8=","eXSLrLqKSxRTixSP/k4YimriB2lufao6trqTrsxxlyg=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2627196457\n7ozpDS7RJltWC3Y87+D+1hVzgZKEXnHCtCRnQJJx/S0=\n\n— rekor.sigstore.dev wNI9ajBFAiA9gGts8+YyGGPjak7NyshBi/LIKSUxbLzCpNdAoQ1bswIhAKc8AMAlCvVjdpjS9FDfkdPKo6teRxKND/3qRo/Tj4CF\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI2NDE4N2U2MGJiMWU1NGRhMDkzNDE1ZjQ0YTRhOWM3NGE4YWI2ODVhNzljNTk1OTJhNDFmZTU1Y2RlY2NiY2Y2In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUNnbXZub1RHR1oyLzhsQ0Zud1hLZHNLZU55QlRialEyR2JPMFJKRjl1K25nSWhBTEVhTUttNmgvRWJNM0VLclJuWUx6Yzl0eEVCT0FHYmZrVStEcGRnQjNkQSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFlla05EUW5WaFowRjNTVUpCWjBsVlJYTkxValZyTWtZeGVWQjRUVkZNWVhwaWREUnZhREI2ZGpKcmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlVUVROTlJHdDZUVVJCTVZkb1kwNU5hbGwzVDFSQk0wMUVhekJOUkVFeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVUzUTNZclQxbFFOMnBwYTNJdmR5dFFObTFxZDFWUWFVTTNLMDF3Tld0bVUxWlRTM1FLTDBVNVdETlZZVWswVms5UVlXaDNWMmxEU0RoV1dVUkpVMWRqY0RSNFRVd3hRa1kxYW1oMFZ6TlJXR2xzUVVSU1IyRlBRMEpuVlhkbloxbENUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZKTTBoaUNtUnJWelJoTDB0R2VtNDNXbE16VG1oSmRTdFdSRmc0ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJKM1dVUldVakJTUVZGSUwwSkhWWGRaTkZwb1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4WE1XaFplVFUxQ2xsWE1YTlJTRXBzV201TmRtRkhWbWhhU0UxMllsZEdjR0pxUVRWQ1oyOXlRbWRGUlVGWlR5OU5RVVZDUWtOMGIyUklVbmRqZW05MlRETlNkbUV5Vm5VS1RHMUdhbVJIYkhaaWJrMTFXakpzTUdGSVZtbGtXRTVzWTIxT2RtSnVVbXhpYmxGMVdUSTVkRTFDT0VkRGFYTkhRVkZSUW1jM09IZEJVVWxGUlZoa2RncGpiWFJ0WWtjNU0xZ3lVbkJqTTBKb1pFZE9iMDFFV1VkRGFYTkhRVkZSUW1jM09IZEJVVTFGUzBSbk5WcEVVWGRPVkZKdFRYcGpNVTVVUVhwUFYxRXhDazVFWXpCWk1scHNXa1JCZWxwcVFUSmFSMVYzVFdwYWJGcFVTbXBhVkdOM1IzZFpTMHQzV1VKQ1FVZEVkbnBCUWtKQlVVNVJibFp3WWtkUlowdEhNV2dLV1RBNVZFdFVRWEpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0l4YjJSWFpHNWhWelZ1V20xR2FscFRPWEphV0VwMVdsZDRla3hYVG5aaVZ6RXhZbTFzTUFwbFZFRmtRbWR2Y2tKblJVVkJXVTh2VFVGRlIwSkJPWGxhVjFwNlRESm9iRmxYVW5wTU1qRm9ZVmMwZDA5M1dVdExkMWxDUWtGSFJIWjZRVUpEUVZGMENrUkRkRzlrU0ZKM1kzcHZka3d6VW5aaE1sWjFURzFHYW1SSGJIWmliazExV2pKc01HRklWbWxrV0U1c1kyMU9kbUp1VW14aWJsRjFXVEk1ZEUxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZGclJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJVdENRMjlOUzBSbk5WcEVVWGRPVkZKdFRYcGpNVTVVUVhvS1QxZFJNVTVFWXpCWk1scHNXa1JCZWxwcVFUSmFSMVYzVFdwYWJGcFVTbXBhVkdOM1NGRlpTMHQzV1VKQ1FVZEVkbnBCUWtOM1VWQkVRVEZ1WVZoU2J3cGtWMGwwWVVjNWVtUkhWbXROUlVGSFEybHpSMEZSVVVKbk56aDNRVkYzUlUxbmQzZGhTRkl3WTBoTk5reDVPVzVoV0ZKdlpGZEpkVmt5T1hSTU1tZ3hDbG95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFJpV0ZaMVlWaFNOVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVEJGUzJkM2IwOUViR3NLVGtSQk1VNUhXWHBPZWxVeFRVUk5OVnBFVlRCT2VsSnFXbTFXYTAxRVRtMU5SRnByV2xSQmVVNXRWbXhOYlU1c1RucEJaa0puYjNKQ1owVkZRVmxQTHdwTlFVVlBRa0pGVFVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJZVUpuYjNKQ1owVkZRVmxQTDAxQlJWQkNRWGROUTJwRmQwNTZSVEJPZWxVeENrMXFhM2RNWjFsTFMzZFpRa0pCUjBSMmVrRkNSVUZSWjBSQ05XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZDBkQldVdExkMWxDUWtGSFJIWjZRVUpGVVZGTFJFRm5lVTVVWTNsTlJHTXdUWHBDZUVKbmIzSkNaMFZGUVZsUEwwMUJSVk5DUjAxTldWZG9NQXBrU0VKNlQyazRkbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemgxQ2xveWJEQmhTRlpwVEROa2RtTnRkRzFpUnprelkzazVhV1JYYkhOYVF6RjBXVmROZFdWWFJuUmlSVUo1V2xkYWVrd3lhR3haVjFKNlRESXhhR0ZYTkhjS1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmMwVDFkUk1FMUVWVEJhYWswelRsUlZkMDE2Ykd0T1ZGRXpUa2RPYlZwWFVYZE5NbGwzVG0xU2JBcE5SRWt5V2xkVmVWa3lWVE5OUTBWSFEybHpSMEZSVVVKbk56aDNRVkpSUlVWM2QxSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkYVFWbExDa3QzV1VKQ1FVZEVkbnBCUWtaUlVsZEVSbEp2WkVoU2QyTjZiM1pNTW1Sd1pFZG9NVmxwTldwaU1qQjJZVWhXYmxveWJIVmFNbHBvV1RKVmRtRXlWbmtLWW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNaWlYwNHdZVmM1ZFdONU9YbGtWelY2VEhwTk1FMVVRWHBOVkdOM1RtcHJlVXd5UmpCa1IxWjBZMGhTZWdwTWVrVjNSbWRaUzB0M1dVSkNRVWRFZG5wQlFrWm5VVWxFUVZwM1pGZEtjMkZYVFhkU1oxbExTM2RaUWtKQlIwUjJla0ZDUjBGUk5FUkVXbmxhV0VKMkNrOXRhREZhTW1Sd1ltMWtiVmxYVG14TU1uUnNZMjAxYkdKSVRYUlpNamwwWWxoV2RXRllValZQYmtwc1dtcHdlVnBYV25wTU1taHNXVmRTZWt3eU1XZ0tZVmMwZDJkWmEwZERhWE5IUVZGUlFqRnVhME5DUVVsRlpYZFNOVUZJWTBGa1VVUmtVRlJDY1hoelkxSk5iVTFhU0doNVdscDZZME52YTNCbGRVNDBPQXB5Wml0SWFXNUxRVXg1Ym5WcVowRkJRV0ZDTjA1Q1RETkJRVUZGUVhkQ1IwMUZVVU5KUTJkWlYyaE1RMkZLUTJZMGVUTmFSMVI2TUZoc1RIaFNiVmxDQ2pORE1tUTFNRFp6TmtsRVR6ZFhjRXhCYVVGT1dsbHVhMkU0YW5WNVFVaHRaRFpwWm1JeldIVTRWVnBWYTJGUWIxcGxURTU0Um5Rdk9HYzVXakI2UVVzS1FtZG5jV2hyYWs5UVVWRkVRWGRPYmtGRVFtdEJha0pXTTBsUUwyWkVORUVyTkRaUVVtY3dMMkpKWTBkNlprcGpkREV4VVNzNE5EbE5NMHhEY0RWQllncDJXSFJ4ZVZod1NHRTRLMVpDTW5kTlEyc3JhRkE0YTBOTlJWSm9UMDB6YmpCVlpVcHhNMVZDU0dkVlFXbE9iR1p2VW1wbWRVWkphbnB0TjBOaFdtVm9DazF0VWxZMVdXVTROMGR3U2tKSGNsSTFaakp2YVRKMlV6VkJQVDBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgAtmR0vI80LoVn7zcIZ2HB3oCjbytVHHlnarUvNVQQZECFQCagyOsoXuWqzEYsW9gZjP1fxkQzxgPMjAyNjA5MDcwOTMwMDVaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHaMIIB1gIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDkwNzA5MzAwNVowLwYJKoZIhvcNAQkEMSIEINiAFOAkTDyS1sVC5NUNcAeHd8VrOhj1j3l35E8p/CfzMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRmMGQCMHXG5EqW0/OfNVPjTLyxLcR4aR+ms/M9CyTBqwvPs3gZyU2lAvBQJ/aeeOeE0w1ojQIwH4btM7HZh+oto5OekSADej/x3Wyn5l8eW/D6OESwOgk/0dGBQG/8gXLGDF2iRmeR"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"ZBh+YLseVNoJNBX0SkqcdKiraFp5xZWSpB/lXN7MvPY="},"signature":"MEYCIQCgmvnoTGGZ2/8lCFnwXKdsKeNyBTbjQ2GbO0RJF9u+ngIhALEaMKm6h/EbM3EKrRnYLzc9txEBOAGbfkU+DpdgB3dA"}}
 
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_89d4054.abi3.so DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:2c40680e6bd86b2fcdd9d1dea8741974b5d19ff2cfa899e9466d1cf5300f0d97
3
- size 846168
 
 
 
 
build/torch214-metal-aarch64-darwin/_ops.py DELETED
@@ -1,9 +0,0 @@
1
- import torch
2
- from . import _bitsandbytes_mps_metal_89d4054
3
- ops = torch.ops._bitsandbytes_mps_metal_89d4054
4
-
5
- def add_op_namespace_prefix(op_name: str):
6
- """
7
- Prefix op by namespace.
8
- """
9
- return f"_bitsandbytes_mps_metal_89d4054::{op_name}"
 
 
 
 
 
 
 
 
 
 
build/torch214-metal-aarch64-darwin/metadata.json DELETED
@@ -1,31 +0,0 @@
1
- {
2
- "name": "bitsandbytes-mps",
3
- "id": "_bitsandbytes_mps_metal_89d4054",
4
- "version": 1,
5
- "kernels-minver": "0.14.0",
6
- "license": "MIT",
7
- "python-depends": [],
8
- "kernel-depends": [],
9
- "backend": {
10
- "type": "metal"
11
- },
12
- "digest": {
13
- "algorithm": "sha256",
14
- "files": {
15
- "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
16
- "_bitsandbytes_mps_metal_89d4054.abi3.so": "LEBoDmvYay/N2dHeqHQZdLXRn/LPqJnpRm0c9TAPDZc=",
17
- "_ops.py": "eCYR64sg6wrqSpsCqWHIUbxBAqW435bZJFT0qFYA1m8="
18
- }
19
- },
20
- "provenance": {
21
- "kernel-builder": {
22
- "version": "0.17.0-dev0",
23
- "commit": "a7f0afdb29a6a3372b1d47180cc0c182454c5e3b",
24
- "dirty": false
25
- },
26
- "kernel": {
27
- "commit": "89d4054f3755039d5474cfed03f06de026ee2ce7",
28
- "dirty": false
29
- }
30
- }
31
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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":"MIIHYzCCBuigAwIBAgIUAcOtU715Wzl4LOrqWN+ioB0rcgEwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwOTA3MDkzMDAzWhcNMjYwOTA3MDk0MDAzWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEE5TiyntRhLSjkw49RrCXRro73ARXyu3sYfuuLU+HtkD7+d9YZ+qtaMdslYMBAYJxNZxPWa2vz+fHAbpektUuu6OCBgcwggYDMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUrZaURvu9ibVZS95QGciG9jJba0cwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wbwYDVR0RAQH/BGUwY4ZhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKDg5ZDQwNTRmMzc1NTAzOWQ1NDc0Y2ZlZDAzZjA2ZGUwMjZlZTJjZTcwGwYKKwYBBAGDvzABBAQNQnVpbGQgKG1hY09TKTArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMHEGCisGAQQBg78wAQkEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAEKBCoMKDg5ZDQwNTRmMzc1NTAzOWQ1NDc0Y2ZlZDAzZjA2ZGUwMjZlZTJjZTcwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoODlkNDA1NGYzNzU1MDM5ZDU0NzRjZmVkMDNmMDZkZTAyNmVlMmNlNzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBxBgorBgEEAYO/MAESBGMMYWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC1tYWMueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABEwQqDCg4OWQ0MDU0ZjM3NTUwMzlkNTQ3NGNmZWQwM2YwNmRlMDI2ZWUyY2U3MCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwZAYKKwYBBAGDvzABFQRWDFRodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvYWN0aW9ucy9ydW5zLzM0MTAzMTcwNjkyL2F0dGVtcHRzLzEwFgYKKwYBBAGDvzABFgQIDAZwdWJsaWMwRgYKKwYBBAGDvzABGAQ4DDZyZXBvOmh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5OnJlZjpyZWZzL2hlYWRzL21haW4wgYsGCisGAQQB1nkCBAIEfQR7AHkAdwDdPTBqxscRMmMZHhyZZzcCokpeuN48rf+HinKALynujgAAAaB7NAomAAAEAwBIMEYCIQC9HIy2s5cAZesBKS09+cmbH0dBicsOV/zPtAn3RQmWSwIhANw9HP+LT2bTFKB+PK6pPF1iREbAC0lCcNc8pkLIoK5yMAoGCCqGSM49BAMDA2kAMGYCMQD260CUTKUniEbb88LUiGrKdr6D3Y2HYRHYdPfARJNivZwiKXDBLn2Y7WpuNfWrqA0CMQD7L9DtzeUyRkyga6o7hLKWJ3X78dDKswT4FK8owwp15kcs1nel2azlYY2K8xfMNfc="},"tlogEntries":[{"logIndex":"2749100207","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1788773403","inclusionPromise":{"signedEntryTimestamp":"MEUCIG5IaZRLlf5qiHV1FNwNj8nQZMuAoyYGx8AlWt7d0noHAiEAgYnmfZidAOafSUNdizG67A2zqWhrZ7RhggPbIHIqmU4="},"inclusionProof":{"logIndex":"2627195945","rootHash":"cJ3QOAhmm4OJ63pQ2TaWMquytzH4gmGZWL6kVejLhww=","treeSize":"2627196067","hashes":["+CKEVBouhytlw+oHwJflcLPvXskjxS3vVhyxOx8pz9k=","uszW7EyR9JSmDzAJCBGBdsGlglitbjT3BaRVTgVqGjI=","UBWdtfuOkZXz/QJnSEPY4Czv9mKN5gRQCh/rtHNwtSk=","GV4JydalPCq7ytKeXUKIuQYKQ2hI9PsPaIE0ehwXBEE=","VDdteGv7nzd1OANhdWNFJX+X8BNuqHXJV2GmKafhLqk=","Rle10fVsItGghtf5Gyv0rw26SctLRzHrkooLnLaXe+c=","64kH21x+c2C3Ufx3x34qy2v4mA95CmQ3dun7N/sf1Ws=","FTAdZJ+EZkbFCC5EKe6uTwGg7AzEM3/FjOVVFWNIXCU=","gwfasP/TJab5Cvtt+/tMBexO1cQPUxTQYVeDqUifdcI=","/PiCs5+cl7D9ZwxQHCNLza7k9yZiaWfgjHrCROrtH5c=","vJH9DwxUiqR7d5Iv86gJqaAG7mgpK8BhNha5RlVSXoE=","rC7UvsBWtIMUY1hF7VAc1IuD9m+gPgcwdArHV3COAxg=","ch0aD372ymT2fXHxbf+epFKHoFZu8e2qER+xxSCbPyc=","yLcHDDCEu1BAK+IfkRJ79X8cbQ0Ewt8a51AAHz4ItBA=","sFs5ZPVs0GrIELeO+PLKnaw6Xqx6rrLLSsxTCL7uEy4=","PeXZrqD3jq5qFdOmhUHJ8en1qzGlcp6bfMESzIwc3z0=","lKSWYj364IeG0b10DY/iYLgSeWiNkybEZLzd49gUFSo=","7tD2K8mAqGTMENrP2YXWz71BeTWQPCiYd3CESAgQLz8=","eXSLrLqKSxRTixSP/k4YimriB2lufao6trqTrsxxlyg=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2627196067\ncJ3QOAhmm4OJ63pQ2TaWMquytzH4gmGZWL6kVejLhww=\n\n— rekor.sigstore.dev wNI9ajBEAiAK2my3MOfNQBnBMpHWxLC7Q+bvWnjsjfU2dD18zXZ72gIgS0Hr00e9s0Pjm1XAQ+kvqNySELb5qwf2PQeTQtfqwHY=\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI1NTVlYWQ0OWUzNTVjOTQ4ZjM3ZDRiYmQ1MTYxYzY3MzI1MWE4ODU1YjllMDUwMTQyZGViZTUyODY0ZDQ1NzNjIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJSEVmekxlMXdjSDFRM1dkVStRUEtYaUR1TloxV0JSdzRPNDhFNDFLdnhvTkFpQVpsb0JobDlSdVo5VERoZVErRkhPU1RXcFNMU3ZTM2xneis4SE5WYXh6YlE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFpla05EUW5WcFowRjNTVUpCWjBsVlFXTlBkRlUzTVRWWGVtdzBURTl5Y1ZkT0sybHZRakJ5WTJkRmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlVUVROTlJHdDZUVVJCZWxkb1kwNU5hbGwzVDFSQk0wMUVhekJOUkVGNlYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZGTlZScGVXNTBVbWhNVTJwcmR6UTVVbkpEV0ZKeWJ6Y3pRVkpZZVhVemMxbG1kWFVLVEZVclNIUnJSRGNyWkRsWldpdHhkR0ZOWkhOc1dVMUNRVmxLZUU1YWVGQlhZVEoyZWl0bVNFRmljR1ZyZEZWMWRUWlBRMEpuWTNkbloxbEVUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZ5V21GVkNsSjJkVGxwWWxaYVV6azFVVWRqYVVjNWFrcGlZVEJqZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJKM1dVUldVakJTUVZGSUwwSkhWWGRaTkZwb1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4WE1XaFplVFUxQ2xsWE1YTlJTRXBzV201TmRtRkhWbWhhU0UxMllsZEdjR0pxUVRWQ1oyOXlRbWRGUlVGWlR5OU5RVVZDUWtOMGIyUklVbmRqZW05MlRETlNkbUV5Vm5VS1RHMUdhbVJIYkhaaWJrMTFXakpzTUdGSVZtbGtXRTVzWTIxT2RtSnVVbXhpYmxGMVdUSTVkRTFDT0VkRGFYTkhRVkZSUW1jM09IZEJVVWxGUlZoa2RncGpiWFJ0WWtjNU0xZ3lVbkJqTTBKb1pFZE9iMDFFV1VkRGFYTkhRVkZSUW1jM09IZEJVVTFGUzBSbk5WcEVVWGRPVkZKdFRYcGpNVTVVUVhwUFYxRXhDazVFWXpCWk1scHNXa1JCZWxwcVFUSmFSMVYzVFdwYWJGcFVTbXBhVkdOM1IzZFpTMHQzV1VKQ1FVZEVkbnBCUWtKQlVVNVJibFp3WWtkUlowdEhNV2dLV1RBNVZFdFVRWEpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0l4YjJSWFpHNWhWelZ1V20xR2FscFRPWEphV0VwMVdsZDRla3hYVG5aaVZ6RXhZbTFzTUFwbFZFRmtRbWR2Y2tKblJVVkJXVTh2VFVGRlIwSkJPWGxhVjFwNlRESm9iRmxYVW5wTU1qRm9ZVmMwZDA5M1dVdExkMWxDUWtGSFJIWjZRVUpEUVZGMENrUkRkRzlrU0ZKM1kzcHZka3d6VW5aaE1sWjFURzFHYW1SSGJIWmliazExV2pKc01HRklWbWxrV0U1c1kyMU9kbUp1VW14aWJsRjFXVEk1ZEUxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZGclJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJVdENRMjlOUzBSbk5WcEVVWGRPVkZKdFRYcGpNVTVVUVhvS1QxZFJNVTVFWXpCWk1scHNXa1JCZWxwcVFUSmFSMVYzVFdwYWJGcFVTbXBhVkdOM1NGRlpTMHQzV1VKQ1FVZEVkbnBCUWtOM1VWQkVRVEZ1WVZoU2J3cGtWMGwwWVVjNWVtUkhWbXROUlVGSFEybHpSMEZSVVVKbk56aDNRVkYzUlUxbmQzZGhTRkl3WTBoTk5reDVPVzVoV0ZKdlpGZEpkVmt5T1hSTU1tZ3hDbG95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFJpV0ZaMVlWaFNOVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVEJGUzJkM2IwOUViR3NLVGtSQk1VNUhXWHBPZWxVeFRVUk5OVnBFVlRCT2VsSnFXbTFXYTAxRVRtMU5SRnByV2xSQmVVNXRWbXhOYlU1c1RucEJaa0puYjNKQ1owVkZRVmxQTHdwTlFVVlBRa0pGVFVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJZVUpuYjNKQ1owVkZRVmxQTDAxQlJWQkNRWGROUTJwRmQwNTZSVEJPZWxVeENrMXFhM2RNWjFsTFMzZFpRa0pCUjBSMmVrRkNSVUZSWjBSQ05XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZDBkQldVdExkMWxDUWtGSFJIWjZRVUpGVVZGTFJFRm5lVTVVWTNsTlJHTXdUWHBDZUVKbmIzSkNaMFZGUVZsUEwwMUJSVk5DUjAxTldWZG9NQXBrU0VKNlQyazRkbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemgxQ2xveWJEQmhTRlpwVEROa2RtTnRkRzFpUnprelkzazVhV1JYYkhOYVF6RjBXVmROZFdWWFJuUmlSVUo1V2xkYWVrd3lhR3haVjFKNlRESXhhR0ZYTkhjS1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmMwVDFkUk1FMUVWVEJhYWswelRsUlZkMDE2Ykd0T1ZGRXpUa2RPYlZwWFVYZE5NbGwzVG0xU2JBcE5SRWt5V2xkVmVWa3lWVE5OUTBWSFEybHpSMEZSVVVKbk56aDNRVkpSUlVWM2QxSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkYVFWbExDa3QzV1VKQ1FVZEVkbnBCUWtaUlVsZEVSbEp2WkVoU2QyTjZiM1pNTW1Sd1pFZG9NVmxwTldwaU1qQjJZVWhXYmxveWJIVmFNbHBvV1RKVmRtRXlWbmtLWW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNaWlYwNHdZVmM1ZFdONU9YbGtWelY2VEhwTk1FMVVRWHBOVkdOM1RtcHJlVXd5UmpCa1IxWjBZMGhTZWdwTWVrVjNSbWRaUzB0M1dVSkNRVWRFZG5wQlFrWm5VVWxFUVZwM1pGZEtjMkZYVFhkU1oxbExTM2RaUWtKQlIwUjJla0ZDUjBGUk5FUkVXbmxhV0VKMkNrOXRhREZhTW1Sd1ltMWtiVmxYVG14TU1uUnNZMjAxYkdKSVRYUlpNamwwWWxoV2RXRllValZQYmtwc1dtcHdlVnBYV25wTU1taHNXVmRTZWt3eU1XZ0tZVmMwZDJkWmMwZERhWE5IUVZGUlFqRnVhME5DUVVsRlpsRlNOMEZJYTBGa2QwUmtVRlJDY1hoelkxSk5iVTFhU0doNVdscDZZME52YTNCbGRVNDBPQXB5Wml0SWFXNUxRVXg1Ym5WcVowRkJRV0ZDTjA1QmIyMUJRVUZGUVhkQ1NVMUZXVU5KVVVNNVNFbDVNbk0xWTBGYVpYTkNTMU13T1N0amJXSklNR1JDQ21samMwOVdMM3BRZEVGdU0xSlJiVmRUZDBsb1FVNTNPVWhRSzB4VU1tSlVSa3RDSzFCTE5uQlFSakZwVWtWaVFVTXdiRU5qVG1NNGNHdE1TVzlMTlhrS1RVRnZSME5EY1VkVFRUUTVRa0ZOUkVFeWEwRk5SMWxEVFZGRU1qWXdRMVZVUzFWdWFVVmlZamc0VEZWcFIzSkxaSEkyUkROWk1raFpVa2haWkZCbVFRcFNTazVwZGxwM2FVdFlSRUpNYmpKWk4xZHdkVTVtVjNKeFFUQkRUVkZFTjB3NVJIUjZaVlY1VW10NVoyRTJiemRvVEV0WFNqTllOemhrUkV0emQxUTBDa1pMT0c5M2QzQXhOV3RqY3pGdVpXd3lZWHBzV1ZreVN6aDRaazFPWm1NOUNpMHRMUzB0UlU1RUlFTkZVbFJKUmtsRFFWUkZMUzB0TFMwSyJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyzADAgEAMIICwgYJKoZIhvcNAQcCoIICszCCAq8CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgXuWK9V/0jnQBxEmwi1zsAAINh4HoQVIH/BYMrpUsaP8CFQDc6LUDhxy7qlVtD0kUHwuC7t15zhgPMjAyNjA5MDcwOTMwMDNaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHcMIIB2AIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDkwNzA5MzAwM1owLwYJKoZIhvcNAQkEMSIEIFYOrXbErfHd1B2aswPKG7/Ln4vRRdbvX5kLSJI8/8CwMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRoMGYCMQD/8xEmSXwRiWdWZrMaqInJThIB1RBqcim+IdIZysBr8wFgQCHVeWvtEYzi90xeAN0CMQCUHaVo3+z2MhsQcqS0g6xXnI9Aw2LbmvcOdzrFjhKbfE0sChStzhCc0v4Tr5EZUiQ="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"VV6tSeNVyUjzfUu9UWHGcyUaiFW54FAULevlKGTUVzw="},"signature":"MEQCIHEfzLe1wcH1Q3WdU+QPKXiDuNZ1WBRw4O48E41KvxoNAiAZloBhl9RuZ9TDheQ+FHOSTWpSLSvS3lgz+8HNVaxzbQ=="}}