kernels-bot commited on
Commit
e5a8920
·
verified ·
1 Parent(s): 52862a9

Uploaded using `kernel-builder`.

Browse files
build/torch211-cxx11-xpu20253-x86_64-linux/{_megablocks_xpu_18e92fb.abi3.so → _megablocks_xpu_c4d0dc5.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:211cc2687e6a0662ec7d14972a0ed79f2c1a5f0541700f0eb3b896b50d55a506
3
- size 3553432
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a6313faabce228bd1b28c8d6fe9fe1ec7445b1b106c2c4ff2c88f3ccebccc507
3
+ size 4321024
build/torch211-cxx11-xpu20253-x86_64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _megablocks_xpu_18e92fb
3
- ops = torch.ops._megablocks_xpu_18e92fb
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_megablocks_xpu_18e92fb::{op_name}"
 
1
  import torch
2
+ from . import _megablocks_xpu_c4d0dc5
3
+ ops = torch.ops._megablocks_xpu_c4d0dc5
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_megablocks_xpu_c4d0dc5::{op_name}"
build/torch211-cxx11-xpu20253-x86_64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "megablocks",
3
- "id": "_megablocks_xpu_18e92fb",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
@@ -38,8 +38,8 @@
38
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
39
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
40
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
41
- "_megablocks_xpu_18e92fb.abi3.so": "IRzCaH5qBmLsfRSXKg7XnywaXwVBcA8Os7iWtQ1VpQY=",
42
- "_ops.py": "FKv16fgkCFJdUGepZCjxPap5RUtQQB/nl2EVq8pVyAI=",
43
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
44
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
45
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
@@ -90,7 +90,7 @@
90
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
91
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
92
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
93
- "xpu_fused_moe.py": "Dp6S3fK/Fc4Sr+Ac94vw2zz0v/QTGp6rYeMIUqE3Y/I="
94
  }
95
  },
96
  "provenance": {
@@ -100,7 +100,7 @@
100
  "dirty": false
101
  },
102
  "kernel": {
103
- "sha": "18e92fb6886201ffb91c173f02593777756c793f",
104
  "dirty": false
105
  }
106
  }
 
1
  {
2
  "name": "megablocks",
3
+ "id": "_megablocks_xpu_c4d0dc5",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
 
38
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
39
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
40
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
41
+ "_megablocks_xpu_c4d0dc5.abi3.so": "pjE/qrziKL0bKMjW/p/h7HRFsbEGwsT/LIjzzOvMxQc=",
42
+ "_ops.py": "KZ/xutl7d4r1cvlnq+lt8PGsR1a57OQznlwnP3eVkKI=",
43
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
44
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
45
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
 
90
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
91
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
92
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
93
+ "xpu_fused_moe.py": "sPmuRSpkH1Bmk4hdpz53us8Qpc6yinT9rkld3T8WreI="
94
  }
95
  },
96
  "provenance": {
 
100
  "dirty": false
101
  },
102
  "kernel": {
103
+ "sha": "c4d0dc56661badb9cc47bde647e08fe3b4bf7458",
104
  "dirty": false
105
  }
106
  }
build/torch211-cxx11-xpu20253-x86_64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHTDCCBtGgAwIBAgIULs8F0Pv9F310pFCoagjrGJ5N2EIwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MDg1MTQ2WhcNMjYwODI1MDkwMTQ2WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEM6ls1wqVE6jbq+AjQpkxyp+nALFMnE1Ic3I/57W2p5jydsbhjvilDwBB3uRZJgwVwBsGXaoMe96Jt9T4mnFKEKOCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU5KOY1krEV5H04t+uHK3ePYcusGgwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDE4ZTkyZmI2ODg2MjAxZmZiOTFjMTczZjAyNTkzNzc3NzU2Yzc5M2YwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4Mjc3ODQ2NjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDgeURkAAAQDAEcwRQIhAISLVjg3rS2d2Mxrp/JvZn8j6lv3F7IoZSPZw4QBcAzyAiBrjeKi/unKRDzLoQS61MeasaTDucHbo31QMbNhhsI8xTAKBggqhkjOPQQDAwNpADBmAjEAkuOF6lebwhU+rKX4m9aMUjdOQrFMmESIeRvkTcA0KFK338Mr1OpTEkXv9QZG7dSXAjEAzd0UeXAjI/sz3BwplL7Mjnm9BUDIVmvrymYtWE0uBhSTlP03VPBmXUMI7/gERryg"}, "tlogEntries":[{"logIndex":"2582961953", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1787647906", "inclusionPromise":{"signedEntryTimestamp":"MEUCIQDfk2fYnMUqBKQxE4MmKLK3PK75v33ccJ5jvMl6gZeaIwIgdRoPgUg3+FNAhZuOClBcQABzeJ5xH3d9YUSWn+nMjmM="}, "inclusionProof":{"logIndex":"2461057691", "rootHash":"TgOypswV6d5BMnGVaykUDT79iaiJWpVkjrIK/2oOktU=", "treeSize":"2461057693", "hashes":["cuB+c3pYjRXD03aZz/AG+MK4OPUszzqEzwFUE9XTSWg=", "ZbTc9rJqlKFodJwqC2F01tDm7Ka4NSm0+tSxGmHPcbI=", "4A2nvQepDn8mtigR533D+2B478u48AaifXqU9ea3XTA=", "qwHgfE6I3d87nJDEVqBYUkuWQmGvcWeKXh8ZxBC8zRw=", "3BPmGCGfTTFqocd10GECkTDUf5vv2Gsjt3GGJA6zzkE=", "mB/UpB9H7CUKaXOtI3tqlR1k0FFQHKKsX4Z8VulGQP8=", "L+ww7xnXOOoVCiQRiBmynDrlvQabAt5VFWzxsBdILtU=", "I6uWY1fVVGvGTO61tOrO/pY4sfzaGT7EJeS0VjVau0M=", "AIf8u9gW8bL2y17W8LUxlNoyuhwQoXMnh4ikfEtQoyA=", "G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=", "RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=", "mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=", "b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=", "SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461057693\nTgOypswV6d5BMnGVaykUDT79iaiJWpVkjrIK/2oOktU=\n\n— rekor.sigstore.dev wNI9ajBFAiEAxYU87Cu2+fVlRQ7VY6BZF4Y74dq9hU32Ii8ivtEMQoQCIALnRs11LanihT2kSCFM0GAUU15ho3dSNVMkJUPaApI9\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI4OTFmNzViZjFhYjYxOTU2NTg1MmZjNjllYWRhMjA2YWMyMmQwZWExM2RiNTUxYjI3MjNhNmYzNWYxMmI1NTcxIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUNqdTBPN3h0bmprVFRMeUxtd0FQQ3VRdjBFZUJ2UXJJQ3Y4RU8vREZEM0xnSWdEcldnb0tLWXI4WGhMcHZ2UmVvaWRMZGRsdklJY2ttNm9QdU40U2lSbTI0PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFVSRU5EUW5SSFowRjNTVUpCWjBsVlRITTRSakJRZGpsR016RXdjRVpEYjJGbmFuSkhTalZPTWtWSmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlJHY3hUVlJSTWxkb1kwNU5hbGwzVDBSSk1VMUVhM2ROVkZFeVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZOTm14ek1YZHhWa1UyYW1KeEswRnFVWEJyZUhsd0syNUJURVpOYmtVeFNXTXpTUzhLTlRkWE1uQTFhbmxrYzJKb2FuWnBiRVIzUWtJemRWSmFTbWQzVm5kQ2MwZFlZVzlOWlRrMlNuUTVWRFJ0YmtaTFJVdFBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlUxUzA5WkNqRnJja1ZXTlVnd05IUXJkVWhMTTJWUVdXTjFjMGRuZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOU5WR2hzVDFSS2JWbHFXVFJQUkZsNVRVUkdiVnB0U1RWTlYwMTRDazU2VG0xTlJFa3hUMVJOTTA1Nll6Tk9WRnBxVG5wcmVscHFRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGhPZWs1dFRVUkpNVTlVVFRNS1RucGpNMDVVV21wT2VtdDZXbXBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGdLVG5wT2JVMUVTVEZQVkUwelRucGpNMDVVV21wT2VtdDZXbXBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUkZORnBVYTNrS1dtMUpNazlFWnpKTmFrRjRXbTFhYVU5VVJtcE5WR042V21wQmVVNVVhM3BPZW1NelRucFZNbGw2WXpWTk1sbDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRXcGpNMDlFVVRKT2FtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVaMlZWVW10QlFVRlJSQXBCUldOM1VsRkphRUZKVTB4V2FtY3pjbE15WkRKTmVISndMMHAyV200NGFqWnNkak5HTjBsdldsTlFXbmMwVVVKalFYcDVRV2xDY21wbFMya3ZkVzVMQ2xKRWVreHZVVk0yTVUxbFlYTmhWRVIxWTBoaWJ6TXhVVTFpVG1ob2MwazRlRlJCUzBKblozRm9hMnBQVUZGUlJFRjNUbkJCUkVKdFFXcEZRV3QxVDBZS05teGxZbmRvVlN0eVMxZzBiVGxoVFZWcVpFOVJja1pOYlVWVFNXVlNkbXRVWTBFd1MwWkxNek00VFhJeFQzQlVSV3RZZGpsUldrYzNaRk5ZUVdwRlFRcDZaREJWWlZoQmFra3ZjM296UW5kd2JFdzNUV3B1YlRsQ1ZVUkpWbTEyY25sdFdYUlhSVEIxUW1oVFZHeFFNRE5XVUVKdFdGVk5TVGN2WjBWU2NubG5DaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgJosULRbhM88DhVKF+SF79kIgK105/NshFiqogtpQD5MCFQD+Y0aT3vnDRMzJtuB/rwRiQPqk+xgPMjAyNjA4MjUwODUxNDZaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDgyNTA4NTE0NlowLwYJKoZIhvcNAQkEMSIEIKpPDUcxlio4b889lZ04HlRwFl0E7iK7ZAuBu48Eir6RMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMQD18KdMXgJcZ8KqPQ7WXahlDI4GIjkMjt17OmhTuqnLkfZDuyqM6hih0DEhiAO8GcACMGvGqnmUFI8Vtf4vBcD7P+aznvl26K/yweDVSUX4oetVwYdCULfJ9iEmkE6AyZyq8w=="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"iR91vxq2GVZYUvxp6togasItDqE9tVGycjpvNfErVXE="}, "signature":"MEUCIQCju0O7xtnjkTTLyLmwAPCuQv0EeBvQrICv8EO/DFD3LgIgDrWgoKKYr8XhLpvvReoidLddlvIIckm6oPuN4SiRm24="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHTDCCBtKgAwIBAgIUIzluOvtPWqWfKClErLlNPRUYKjMwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MTIwNzQ2WhcNMjYwODI1MTIxNzQ2WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEkOr64RjNQ0gt5zj4LR+iPIc/WMDx8QdjmFtR7/u1e7YFCKOdqJkaPRL8nwWLPao6Zgbq2s8+UqNZwozyW10gqaOCBfEwggXtMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUvzLXJHYLh/n4tr78PT0CZ8qGQdUwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGM0ZDBkYzU2NjYxYmFkYjljYzQ3YmRlNjQ3ZTA4ZmUzYjRiZjc0NTgwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4NDQ2ODk4OTQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDjRw7kAAAQDAEgwRgIhAK/xGojM6pQemiFXiNF3e2WP0gG1lq71LdWeSwE8kKNTAiEAroxYtKM12bIlDEWHUNe5Fg80+ANZrIDmW0DkdKRNpLgwCgYIKoZIzj0EAwMDaAAwZQIwWA1IIR/2HT0j3k4RExzkzno/r005KDWft4RTXIfOGYDaqQPI2AK0uU5X8MyGIgscAjEAinwvwk6Us0LBPNaNW7stEa9wv+76hLWDz6QB8oHZhWCUSePr6XWNCpNauZUVC9uS"}, "tlogEntries":[{"logIndex":"2583274357", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1787659666", "inclusionPromise":{"signedEntryTimestamp":"MEQCID7eLq7wiB1ZivkWLD/Yg+95tXZz3cqmBeWWv8VCNslkAiBXDJPTh4Y7ZQ4z8RVrY6Ca5l/6Tg2P6zoruX4ukmfwHQ=="}, "inclusionProof":{"logIndex":"2461370095", "rootHash":"sNdad1MYqTezyuxVsQbdWDuGezleCfAVTPuhx4YUMRQ=", "treeSize":"2461370096", "hashes":["p8KJgfmCOTSN5JxKwmMJmpRe1C7x2TqJ5qho61aFifg=", "MbZb5RVaRHfqDrl3xHl8bF42Wpu7OxJ6NMMRNI4tDDM=", "MgUJd53G8EV31ig6QZR9U6dN/Ej1GPS5ayB8X21qHR4=", "qHs0mut7KuFue87Z1nV/QuRceM+1PlkJj8CLP2OIAyQ=", "gRd5sNxi5eDa55ZlY+5SfYVJq4GljVECv0jl/fOv4wk=", "5qjJfz7EuBCzY7LHx9a9AMI+K35pr8cTAiOfk7dpAPE=", "RBz2MREEZpmXGxUtKP8ABoDLiNAR/6GNsImOEpoZr44=", "JsX9xGIEwFv7MFelTobmTLz4j1Jl78aSs2G7dkybw0w=", "nwobU/9yRWhsbw80xq3x/uNV1nniMWdUKAqc3UWYsJM=", "EXKrSbeG2qm5APD5QSDN66X7UHz9OSofiW9PyNU7fPM=", "cjIeeutzThxIPTlFFHJqa7bAzn3k2FzK8Nrdd56OWvE=", "+pNXWGIXzU1dqSy/aePHKYtSkDnFinI+/bL5HnurJ6w=", "G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=", "RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=", "mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=", "b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=", "SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461370096\nsNdad1MYqTezyuxVsQbdWDuGezleCfAVTPuhx4YUMRQ=\n\n— rekor.sigstore.dev wNI9ajBEAiBDmv7pjT5tF2Co7OGBHBHwR5bn/PZjrolwj+PYykkizwIgUE6i07I2FM2jfeX2NJzMZGJKQ+2t8jW/ZP062BiiiY0=\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJiM2IzMWYzOTQ5OTBhNjU5YWQ4N2IxMjFmZWMyMDA1MWM2NzQ3MjU3NjZjZTk5MDUxZTcxZDRiZDFlMDkyNzc5In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJRENEWTNTK1NtcTBpRU5RMXNncEtVWkc5UmkzazVxUWR1aGlZdDlrYVAzMkFpQlZTM2xnbmp5M0Q2TUQ0NnBwUWQ1dlJGUGV6MkxsOWcwcU4zbWVUTjVSOVE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFVSRU5EUW5STFowRjNTVUpCWjBsVlNYcHNkVTkyZEZCWGNWZG1TME5zUlhKTWJFNVFVbFZaUzJwTmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlZFbDNUbnBSTWxkb1kwNU5hbGwzVDBSSk1VMVVTWGhPZWxFeVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZyVDNJMk5GSnFUbEV3WjNRMWVtbzBURklyYVZCSll5OVhUVVI0T0ZGa2FtMUdkRklLTnk5MU1XVTNXVVpEUzA5a2NVcHJZVkJTVERodWQxZE1VR0Z2TmxwblluRXljemdyVlhGT1duZHZlbmxYTVRCbmNXRlBRMEptUlhkbloxaDBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlYyZWt4WUNrcElXVXhvTDI0MGRISTNPRkJVTUVOYU9IRkhVV1JWZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVplbEpyVFVkU2FrNVVXVEpPYWtacFdWZFNhVTlYVG1wT1JHUnBDbHBIVlRKT1JHUnNUVVJvYlZwVVRtbE9SMHB0VG5wUk1VOUVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2xhUjFVeVRrUmtiRTFFYUcwS1dsUk9hVTVIU20xT2VsRXhUMFJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2tLV2tkVk1rNUVaR3hOUkdodFdsUk9hVTVIU20xT2VsRXhUMFJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZE5NRnBFUW1zS1dYcFZNazVxV1hoWmJVWnJXV3BzYWxsNlVUTlpiVkpzVG1wUk0xcFVRVFJhYlZWNldXcFNhVnBxWXpCT1ZHZDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRrUlJNazlFYXpSUFZGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwZDFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT1VKSWMwRUtaVkZDTTBGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVhbEozTjJ0QlFVRlJSQXBCUldkM1VtZEphRUZMTDNoSGIycE5ObkJSWlcxcFJsaHBUa1l6WlRKWFVEQm5SekZzY1RjeFRHUlhaVk4zUlRoclMwNVVRV2xGUVhKdmVGbDBTMDB4Q2pKaVNXeEVSVmRJVlU1bE5VWm5PREFyUVU1YWNrbEViVmN3Ukd0a1MxSk9jRXhuZDBObldVbExiMXBKZW1vd1JVRjNUVVJoUVVGM1dsRkpkMWRCTVVrS1NWSXZNa2hVTUdvemF6UlNSWGg2YTNwdWJ5OXlNREExUzBSWFpuUTBVbFJZU1daUFIxbEVZWEZSVUVreVFVc3dkVlUxV0RoTmVVZEpaM05qUVdwRlFRcHBibmQyZDJzMlZYTXdURUpRVG1GT1Z6ZHpkRVZoT1hkMkt6YzJhRXhYUkhvMlVVSTRiMGhhYUZkRFZWTmxVSEkyV0ZkT1EzQk9ZWFZhVlZaRE9YVlRDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgeBwwzPZR2St8rF3TjNMFJH6cEb0+ZpX5DYtnQMd5UUcCFQDGBRSGS5PWx7H00VRHBHeVfMP8CRgPMjAyNjA4MjUxMjA3NDZaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHaMIIB1gIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDgyNTEyMDc0NlowLwYJKoZIhvcNAQkEMSIEIPJgL/hPgtePC00s7ES9TLKV7NS2fo0kWw5VVhOiPEYpMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRmMGQCMC6IwcE3T8EvwvHz6Uo026enxQIOuYHH2U00qgbOFIchNg9M8oP79vHzdblbt3CCmgIwfAk+LjIlla/zuoWwJgedqtemcFNVQR3YFyIYVtsj1jlyHVVRhWbN4NG3krK/edAX"}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"s7MfOUmQplmth7Eh/sIAUcZ0cldmzpkFHnHUvR4JJ3k="}, "signature":"MEQCIDCDY3S+Smq0iENQ1sgpKUZG9Ri3k5qQduhiYt9kaP32AiBVS3lgnjy3D6MD46ppQd5vRFPez2Ll9g0qN3meTN5R9Q=="}}
build/torch211-cxx11-xpu20253-x86_64-linux/xpu_fused_moe.py CHANGED
@@ -26,7 +26,7 @@ def _register_xpu_fake_kernels():
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
- lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4: ptr_D,
30
  )
31
 
32
  _register_if_available(
@@ -106,12 +106,13 @@ def cutlass_grouped_gemm(input_A, input_B, bias, output, expert_token_count, n,
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
- is_B_mxfp4=False)
 
110
 
111
 
112
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
113
  num_rows_per_expert, n, k, num_experts, is_B_int4,
114
- is_B_mxfp4):
115
  expert_first_token_offset = torch.cat([
116
  torch.tensor([0],
117
  dtype=num_rows_per_expert.dtype,
@@ -129,7 +130,8 @@ def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
129
  K=k,
130
  num_experts=num_experts,
131
  is_B_int4=is_B_int4,
132
- is_B_mxfp4=is_B_mxfp4)
 
133
 
134
 
135
  def ceilDiv(a, b):
@@ -206,7 +208,8 @@ def xpu_fused_moe(hidden_states,
206
  ep_size=1,
207
  is_fp8=False,
208
  is_int4=False,
209
- is_mxfp4=False):
 
210
  '''
211
  hidden_states: [num_rows, hidden_size]
212
  w13: [num_experts, 2*inter_size, hidden_size]
@@ -228,6 +231,7 @@ def xpu_fused_moe(hidden_states,
228
  num_experts: int
229
  is_int4: bool
230
  is_mxfp4: bool
 
231
  '''
232
 
233
  # Resolve DTensors to local tensors before passing to custom ops
@@ -266,7 +270,7 @@ def xpu_fused_moe(hidden_states,
266
 
267
  # 4bits support [E, N, K]
268
  # other types [E, K, N]
269
- if not is_int4 and not is_mxfp4:
270
  if not hasattr(w13, 'xpu_fused_moe'):
271
  if needs_transpose:
272
  w13.data = w13.transpose(-1, -2).contiguous()
@@ -389,7 +393,7 @@ def xpu_fused_moe(hidden_states,
389
  ########### gemm1 ##################
390
  input_B = w13
391
 
392
- if not is_fp8 and not is_int4 and not is_mxfp4:
393
  ops.cutlass_grouped_gemm_interface(
394
  ptr_A=gemm1_input,
395
  ptr_B=input_B,
@@ -401,7 +405,8 @@ def xpu_fused_moe(hidden_states,
401
  K=hidden_size,
402
  num_experts=num_experts_per_node,
403
  is_B_int4=is_int4,
404
- is_B_mxfp4=is_mxfp4)
 
405
  else:
406
  ops.cutlass_grouped_gemm_interface(
407
  ptr_A=gemm1_input,
@@ -414,7 +419,8 @@ def xpu_fused_moe(hidden_states,
414
  K=hidden_size,
415
  num_experts=num_experts_per_node,
416
  is_B_int4=is_int4,
417
- is_B_mxfp4=is_mxfp4)
 
418
 
419
  # act
420
  act_output = torch.empty((num_moe_inputs, inter_size),
@@ -435,7 +441,7 @@ def xpu_fused_moe(hidden_states,
435
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
436
  dtype=hidden_states.dtype,
437
  device=hidden_states.device)
438
- if not is_fp8 and not is_int4 and not is_mxfp4:
439
  ops.cutlass_grouped_gemm_interface(
440
  ptr_A=input_A,
441
  ptr_B=input_B,
@@ -447,7 +453,8 @@ def xpu_fused_moe(hidden_states,
447
  K=inter_size,
448
  num_experts=num_experts_per_node,
449
  is_B_int4=is_int4,
450
- is_B_mxfp4=is_mxfp4)
 
451
  else:
452
  ops.cutlass_grouped_gemm_interface(
453
  ptr_A=input_A,
@@ -460,7 +467,8 @@ def xpu_fused_moe(hidden_states,
460
  K=inter_size,
461
  num_experts=num_experts_per_node,
462
  is_B_int4=is_int4,
463
- is_B_mxfp4=is_mxfp4)
 
464
 
465
  ops.moe_gather(output, gemm2_output, topk_weights,
466
  permuted_row_to_unpermuted_row,
@@ -633,6 +641,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
633
  is_fp8 = getattr(self.experts, "is_fp8", False)
634
  is_int4 = getattr(self.experts, "is_int4", False)
635
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
 
636
 
637
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
638
  w2_scales = getattr(self.experts, "down_proj_scales", None)
@@ -685,6 +694,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
685
  is_fp8=is_fp8,
686
  is_int4=is_int4,
687
  is_mxfp4=is_mxfp4,
 
688
  )
689
 
690
  # All-reduce across EP group to combine partial expert outputs
 
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
+ lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4, is_B_mxfp8=False: ptr_D,
30
  )
31
 
32
  _register_if_available(
 
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
+ is_B_mxfp4=False,
110
+ is_B_mxfp8=False)
111
 
112
 
113
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
114
  num_rows_per_expert, n, k, num_experts, is_B_int4,
115
+ is_B_mxfp4, is_B_mxfp8=False):
116
  expert_first_token_offset = torch.cat([
117
  torch.tensor([0],
118
  dtype=num_rows_per_expert.dtype,
 
130
  K=k,
131
  num_experts=num_experts,
132
  is_B_int4=is_B_int4,
133
+ is_B_mxfp4=is_B_mxfp4,
134
+ is_B_mxfp8=is_B_mxfp8)
135
 
136
 
137
  def ceilDiv(a, b):
 
208
  ep_size=1,
209
  is_fp8=False,
210
  is_int4=False,
211
+ is_mxfp4=False,
212
+ is_mxfp8=False):
213
  '''
214
  hidden_states: [num_rows, hidden_size]
215
  w13: [num_experts, 2*inter_size, hidden_size]
 
231
  num_experts: int
232
  is_int4: bool
233
  is_mxfp4: bool
234
+ is_mxfp8: bool
235
  '''
236
 
237
  # Resolve DTensors to local tensors before passing to custom ops
 
270
 
271
  # 4bits support [E, N, K]
272
  # other types [E, K, N]
273
+ if not is_int4 and not is_mxfp4 and not is_mxfp8:
274
  if not hasattr(w13, 'xpu_fused_moe'):
275
  if needs_transpose:
276
  w13.data = w13.transpose(-1, -2).contiguous()
 
393
  ########### gemm1 ##################
394
  input_B = w13
395
 
396
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
397
  ops.cutlass_grouped_gemm_interface(
398
  ptr_A=gemm1_input,
399
  ptr_B=input_B,
 
405
  K=hidden_size,
406
  num_experts=num_experts_per_node,
407
  is_B_int4=is_int4,
408
+ is_B_mxfp4=is_mxfp4,
409
+ is_B_mxfp8=is_mxfp8)
410
  else:
411
  ops.cutlass_grouped_gemm_interface(
412
  ptr_A=gemm1_input,
 
419
  K=hidden_size,
420
  num_experts=num_experts_per_node,
421
  is_B_int4=is_int4,
422
+ is_B_mxfp4=is_mxfp4,
423
+ is_B_mxfp8=is_mxfp8)
424
 
425
  # act
426
  act_output = torch.empty((num_moe_inputs, inter_size),
 
441
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
442
  dtype=hidden_states.dtype,
443
  device=hidden_states.device)
444
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
445
  ops.cutlass_grouped_gemm_interface(
446
  ptr_A=input_A,
447
  ptr_B=input_B,
 
453
  K=inter_size,
454
  num_experts=num_experts_per_node,
455
  is_B_int4=is_int4,
456
+ is_B_mxfp4=is_mxfp4,
457
+ is_B_mxfp8=is_mxfp8)
458
  else:
459
  ops.cutlass_grouped_gemm_interface(
460
  ptr_A=input_A,
 
467
  K=inter_size,
468
  num_experts=num_experts_per_node,
469
  is_B_int4=is_int4,
470
+ is_B_mxfp4=is_mxfp4,
471
+ is_B_mxfp8=is_mxfp8)
472
 
473
  ops.moe_gather(output, gemm2_output, topk_weights,
474
  permuted_row_to_unpermuted_row,
 
641
  is_fp8 = getattr(self.experts, "is_fp8", False)
642
  is_int4 = getattr(self.experts, "is_int4", False)
643
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
644
+ is_mxfp8 = getattr(self.experts, "is_mxfp8", False)
645
 
646
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
647
  w2_scales = getattr(self.experts, "down_proj_scales", None)
 
694
  is_fp8=is_fp8,
695
  is_int4=is_int4,
696
  is_mxfp4=is_mxfp4,
697
+ is_mxfp8=is_mxfp8,
698
  )
699
 
700
  # All-reduce across EP group to combine partial expert outputs
build/torch212-cxx11-xpu20253-x86_64-linux/{_megablocks_xpu_18e92fb.abi3.so → _megablocks_xpu_c4d0dc5.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:661492ad13d0a899ef66f4f57881972078f100e874a22dcc0c9168f2b1bcd667
3
- size 3553560
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:868eb695bd1e4c252332321da1ca3002e7322764498808ed957cf8e869b9ea5a
3
+ size 4321128
build/torch212-cxx11-xpu20253-x86_64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _megablocks_xpu_18e92fb
3
- ops = torch.ops._megablocks_xpu_18e92fb
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_megablocks_xpu_18e92fb::{op_name}"
 
1
  import torch
2
+ from . import _megablocks_xpu_c4d0dc5
3
+ ops = torch.ops._megablocks_xpu_c4d0dc5
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_megablocks_xpu_c4d0dc5::{op_name}"
build/torch212-cxx11-xpu20253-x86_64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "megablocks",
3
- "id": "_megablocks_xpu_18e92fb",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
@@ -38,8 +38,8 @@
38
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
39
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
40
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
41
- "_megablocks_xpu_18e92fb.abi3.so": "ZhSSrRPQqJnvZvT1eIGXIHjxAOh0oi3MDJFo8rG81mc=",
42
- "_ops.py": "FKv16fgkCFJdUGepZCjxPap5RUtQQB/nl2EVq8pVyAI=",
43
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
44
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
45
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
@@ -90,7 +90,7 @@
90
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
91
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
92
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
93
- "xpu_fused_moe.py": "Dp6S3fK/Fc4Sr+Ac94vw2zz0v/QTGp6rYeMIUqE3Y/I="
94
  }
95
  },
96
  "provenance": {
@@ -100,7 +100,7 @@
100
  "dirty": false
101
  },
102
  "kernel": {
103
- "sha": "18e92fb6886201ffb91c173f02593777756c793f",
104
  "dirty": false
105
  }
106
  }
 
1
  {
2
  "name": "megablocks",
3
+ "id": "_megablocks_xpu_c4d0dc5",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
 
38
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
39
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
40
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
41
+ "_megablocks_xpu_c4d0dc5.abi3.so": "ho62lb0eTCUjMjIdocowAucyJ2RJiAjtlXz46Gm56lo=",
42
+ "_ops.py": "KZ/xutl7d4r1cvlnq+lt8PGsR1a57OQznlwnP3eVkKI=",
43
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
44
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
45
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
 
90
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
91
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
92
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
93
+ "xpu_fused_moe.py": "sPmuRSpkH1Bmk4hdpz53us8Qpc6yinT9rkld3T8WreI="
94
  }
95
  },
96
  "provenance": {
 
100
  "dirty": false
101
  },
102
  "kernel": {
103
+ "sha": "c4d0dc56661badb9cc47bde647e08fe3b4bf7458",
104
  "dirty": false
105
  }
106
  }
build/torch212-cxx11-xpu20253-x86_64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHSjCCBtCgAwIBAgIUUo1Q+dMc1YruPECHaV6deR8dVBQwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MDg1MTQ2WhcNMjYwODI1MDkwMTQ2WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEm6+030z+eACu2UyM3KOAWNjRSkP0Ktzjenkkofw/1qqXA0PhBA3DM6SeRpLbdl9ZVCWfOlhhjGR2C9LEcjvrgqOCBe8wggXrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU+0zhfUftst48U/qXBS7Rrw0ybVAwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDE4ZTkyZmI2ODg2MjAxZmZiOTFjMTczZjAyNTkzNzc3NzU2Yzc5M2YwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4Mjc3ODQ2NjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDgeVFkAAAQDAEYwRAIgHlbFSxPhFtZNe0UgD64oP7QQkWlrGQ6G5Q9u/w4ZbSgCIBdXw37FU2DkEkh3Cgwj4FmkkRr5kfvbIqVVmLsItU0sMAoGCCqGSM49BAMDA2gAMGUCMBYTrRUaFqVBx645v6MZI1TPA9qZIXaWeHXuwyApnjvLpTC8bE+NyWZqsPDDdQznzAIxAKwW703J5pFvzkMLtHiInH8eT0dvqS8ro43wDqs9oc9AsRW2UeTZUBz3JP1Sm65dBg=="}, "tlogEntries":[{"logIndex":"2582961967", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1787647907", "inclusionPromise":{"signedEntryTimestamp":"MEYCIQCuSLOiEgMMKoKphyEjZoHZzWZqrOgnrSu/Nu767xbS8QIhAPg5HaG+D20IkMFvEdqNXW8D2HL4FWR0gT5WxNgTUg5N"}, "inclusionProof":{"logIndex":"2461057705", "rootHash":"u6UUhCe8LH/Dbd9a46QKRLrmb4JpL561F1y3Z3bq5cA=", "treeSize":"2461057708", "hashes":["F7TEKDuu+YFFo7OLlEwIzlZWc8Xi415hbhsi99z/O1E=", "P8ph9ciEbWQC1WHyF81PwKneEft7FJFOvvbrGgVasgs=", "2WNElo7tRci3y2DoWmrHdInqhBeEhKKZlMETLw1Ohn8=", "2SU7I66Sclt9Jps6m2NeW+MHapEPMWvVa1OUGrTvtNg=", "mB/UpB9H7CUKaXOtI3tqlR1k0FFQHKKsX4Z8VulGQP8=", "L+ww7xnXOOoVCiQRiBmynDrlvQabAt5VFWzxsBdILtU=", "I6uWY1fVVGvGTO61tOrO/pY4sfzaGT7EJeS0VjVau0M=", "AIf8u9gW8bL2y17W8LUxlNoyuhwQoXMnh4ikfEtQoyA=", "G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=", "RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=", "mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=", "b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=", "SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461057708\nu6UUhCe8LH/Dbd9a46QKRLrmb4JpL561F1y3Z3bq5cA=\n\n— rekor.sigstore.dev wNI9ajBGAiEAlR/P6vrUK18VNH0Y9AAUEwGCQT592X/2CekmYgFciO4CIQC85a0rAGxPq6l19BuBJRU60zPdcr8eEOzncHd3TUcjhg==\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIzZDBjMmUwNTdiMjRiMDc4OWNhOGJjMjBmYThjM2Y5MjNjNjNlYTA4YTFkY2EwYjg0NmY1Y2JhMzc2NWYzYWY3In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUROeHBxZ3RHbVNlNHlhOEUvODFhWFg5NysrNkdSV3BEVlUrYWtvOWRJSi9nSWhBTkxBYURFV2tBWUk1dzE4Q2NkK0s4MVFxVnlZc2RXTVdmd2FYNkRJOUI3diIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRha05EUW5SRFowRjNTVUpCWjBsVlZXOHhVU3RrVFdNeFdYSjFVRVZEU0dGV05tUmxVamhrVmtKUmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlJHY3hUVlJSTWxkb1kwNU5hbGwzVDBSSk1VMUVhM2ROVkZFeVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZ0Tmlzd016QjZLMlZCUTNVeVZYbE5NMHRQUVZkT2FsSlRhMUF3UzNSNmFtVnVhMnNLYjJaM0x6RnhjVmhCTUZCb1FrRXpSRTAyVTJWU2NFeGlaR3c1V2xaRFYyWlBiR2hvYWtkU01rTTVURVZqYW5aeVozRlBRMEpsT0hkbloxaHlUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlVyTUhwb0NtWlZablJ6ZERRNFZTOXhXRUpUTjFKeWR6QjVZbFpCZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOU5WR2hzVDFSS2JWbHFXVFJQUkZsNVRVUkdiVnB0U1RWTlYwMTRDazU2VG0xTlJFa3hUMVJOTTA1Nll6Tk9WRnBxVG5wcmVscHFRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGhPZWs1dFRVUkpNVTlVVFRNS1RucGpNMDVVV21wT2VtdDZXbXBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGdLVG5wT2JVMUVTVEZQVkUwelRucGpNMDVVV21wT2VtdDZXbXBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUkZORnBVYTNrS1dtMUpNazlFWnpKTmFrRjRXbTFhYVU5VVJtcE5WR042V21wQmVVNVVhM3BPZW1NelRucFZNbGw2WXpWTk1sbDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRXcGpNMDlFVVRKT2FtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwVVZsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTTjBKSWEwRUtaSGRDTVVGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVaMlZXUm10QlFVRlJSQXBCUlZsM1VrRkpaMGhzWWtaVGVGQm9SblJhVG1Vd1ZXZEVOalJ2VURkUlVXdFhiSEpIVVRaSE5WRTVkUzkzTkZwaVUyZERTVUprV0hjek4wWlZNa1JyQ2tWcmFETkRaM2RxTkVadGEydFNjalZyWm5aaVNYRldWbTFNYzBsMFZUQnpUVUZ2UjBORGNVZFRUVFE1UWtGTlJFRXlaMEZOUjFWRFRVSlpWSEpTVldFS1JuRldRbmcyTkRWMk5rMWFTVEZVVUVFNWNWcEpXR0ZYWlVoWWRYZDVRWEJ1YW5aTWNGUkRPR0pGSzA1NVYxcHhjMUJFUkdSUmVtNTZRVWw0UVV0M1Z3bzNNRE5LTlhCR2RucHJUVXgwU0dsSmJrZzRaVlF3WkhaeFV6aHlielF6ZDBSeGN6bHZZemxCYzFKWE1sVmxWRnBWUW5velNsQXhVMjAyTldSQ1p6MDlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg/NsEwfjHmQzDyIXTJeQTJGpp37BoZF83gwsfe4O7ApUCFA7AwoX4Vf8VAbzrDiBFYvrTLc7zGA8yMDI2MDgyNTA4NTE0NlowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI1MDg1MTQ2WjAvBgkqhkiG9w0BCQQxIgQgIa8KQFKDO4sH+itJ3ystmHo+XqWJ/vadfg4DI6Ejjc0wgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIxAKvtsNw0y4SABHEUKMGAqctw6IN5f7+PhTxqOBGFVdht97vIpDXal6rcR2JfaRe0VgIwbZJvS0Li0dX8iyLfzrwt9C8k1xmkprpGCVXK68c7+PNyb4CiAmYYeD38Xm0seVv4"}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"PQwuBXsksHicqLwg+ow/kjxj6gih3KC4RvXLo3ZfOvc="}, "signature":"MEYCIQDNxpqgtGmSe4ya8E/81aXX97++6GRWpDVU+ako9dIJ/gIhANLAaDEWkAYI5w18Ccd+K81QqVyYsdWMWfwaX6DI9B7v"}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHTDCCBtKgAwIBAgIUXl5Lj0ZZxmJSBAElnUur5bPOFSUwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MTIwNzQ3WhcNMjYwODI1MTIxNzQ3WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErc2vjnOd2F7gDDhqBurUUxT/ujdwHbHjt8JcM57UgNubELzPeSCPV+EjHNgld7qmRfUjLa21P6DWD7BypZNRNqOCBfEwggXtMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU+Uxv/tFJgmXCXe5vuYfg2ML3TocwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGM0ZDBkYzU2NjYxYmFkYjljYzQ3YmRlNjQ3ZTA4ZmUzYjRiZjc0NTgwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4NDQ2ODk4OTQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDjRxswAAAQDAEgwRgIhAN+W8o+X7UgM1dt/DI3YoGQwFZtyRfMAGOEyZnvXz5DPAiEA0zBGzcriJLXqkz+htQgXqRdIzS3LI70Vj61poOh2B+MwCgYIKoZIzj0EAwMDaAAwZQIxANO7WbSfiTPHzqSEAfB+JpfkSWRdxfujCm2jE0ncT/4jIC6v14qyZVBlHp7+teGYYAIwOx4kJzvP6rP/tlp5LPhe7rF5kD+Vja6AtjwfMNXLBgTcU4Aew0pof22Kdj5DsGO9"}, "tlogEntries":[{"logIndex":"2583274380", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1787659667", "inclusionPromise":{"signedEntryTimestamp":"MEYCIQCpPbM0AS/szLFi2f2RNpUPV4OvvmCRi5a6WAzN9iI8/AIhAJA2d6b7uUNN4ebditgvyIz/6tvKd7yv4hi/AP2Mwxti"}, "inclusionProof":{"logIndex":"2461370118", "rootHash":"cQ7wW1xW/L20rkOvTt9r9iCKPByWXNI6FCkRaju37Ts=", "treeSize":"2461370120", "hashes":["y7dnw8OA1nxLA6kcdGFSV0dFZoGA1uZ1xOITOKTf2Js=", "uJ0tsePLf6AS/EahjuJN0+b+EnlFud7NirVAZMI0B4I=", "jjdaExfTfO3Htve6MMlB8UBrmhQIgQW9lSQ4kVJYuG4=", "BJlxWyo+0U2jxgcimrAeK1pey6FSpHWLOetp0UXRWI4=", "JsX9xGIEwFv7MFelTobmTLz4j1Jl78aSs2G7dkybw0w=", "nwobU/9yRWhsbw80xq3x/uNV1nniMWdUKAqc3UWYsJM=", "EXKrSbeG2qm5APD5QSDN66X7UHz9OSofiW9PyNU7fPM=", "cjIeeutzThxIPTlFFHJqa7bAzn3k2FzK8Nrdd56OWvE=", "+pNXWGIXzU1dqSy/aePHKYtSkDnFinI+/bL5HnurJ6w=", "G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=", "RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=", "mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=", "b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=", "SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461370120\ncQ7wW1xW/L20rkOvTt9r9iCKPByWXNI6FCkRaju37Ts=\n\n— rekor.sigstore.dev wNI9ajBFAiA9mr274M9R9qIT6J8dTEeSqj88FaQxjItF4bRLmWCsmwIhAMsWTJ1A8HcsmgMoEJo+YpOQ01H1eQMrBHPvtx3pT2mT\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJlMjU4NGVmMDU2OGZkMmVkMTM4MmE2ODZjODNhMGIyNzNhMmZjYzE4MWI1YzZkMmQ2ODRjNzgwNDc5MzNjM2JkIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUNwRlg3N3NjWTF1VUZwOWdNQWIrUWJ3VVluYlNFdXNjYURBYlJCbFVQNHJnSWdCT1E3T3U4QnNaTGo1RWNtNDArOTViOXZoUFhGVmZZNmxxV3kvUHpBbWE0PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFVSRU5EUW5STFowRjNTVUpCWjBsVldHdzFUR293V2xwNGJVcFRRa0ZGYkc1VmRYSTFZbEJQUmxOVmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlZFbDNUbnBSTTFkb1kwNU5hbGwzVDBSSk1VMVVTWGhPZWxFelYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZ5WXpKMmFtNVBaREpHTjJkRVJHaHhRblZ5VlZWNFZDOTFhbVIzU0dKSWFuUTRTbU1LVFRVM1ZXZE9kV0pGVEhwUVpWTkRVRllyUldwSVRtZHNaRGR4YlZKbVZXcE1ZVEl4VURaRVYwUTNRbmx3V2s1U1RuRlBRMEptUlhkbloxaDBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlVyVlhoMkNpOTBSa3BuYlZoRFdHVTFkblZaWm1jeVRVd3pWRzlqZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVplbEpyVFVkU2FrNVVXVEpPYWtacFdWZFNhVTlYVG1wT1JHUnBDbHBIVlRKT1JHUnNUVVJvYlZwVVRtbE9SMHB0VG5wUk1VOUVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2xhUjFVeVRrUmtiRTFFYUcwS1dsUk9hVTVIU20xT2VsRXhUMFJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2tLV2tkVk1rNUVaR3hOUkdodFdsUk9hVTVIU20xT2VsRXhUMFJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZE5NRnBFUW1zS1dYcFZNazVxV1hoWmJVWnJXV3BzYWxsNlVUTlpiVkpzVG1wUk0xcFVRVFJhYlZWNldXcFNhVnBxWXpCT1ZHZDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRrUlJNazlFYXpSUFZGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwZDFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT1VKSWMwRUtaVkZDTTBGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVhbEo0YzNkQlFVRlJSQXBCUldkM1VtZEphRUZPSzFjNGJ5dFlOMVZuVFRGa2RDOUVTVE5aYjBkUmQwWmFkSGxTWmsxQlIwOUZlVnB1ZGxoNk5VUlFRV2xGUVRCNlFrZDZZM0pwQ2twTVdIRnJlaXRvZEZGbldIRlNaRWw2VXpOTVNUY3dWbW8yTVhCdlQyZ3lRaXROZDBObldVbExiMXBKZW1vd1JVRjNUVVJoUVVGM1dsRkplRUZPVHpjS1YySlRabWxVVUVoNmNWTkZRV1pDSzBwd1ptdFRWMUprZUdaMWFrTnRNbXBGTUc1alZDODBha2xETm5ZeE5IRjVXbFpDYkVod055dDBaVWRaV1VGSmR3cFBlRFJyU25wMlVEWnlVQzkwYkhBMVRGQm9aVGR5UmpWclJDdFdhbUUyUVhScWQyWk5UbGhNUW1kVVkxVTBRV1YzTUhCdlpqSXlTMlJxTlVSelIwODVDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgAF4NzZ4QDxxyny7GD5G9gutsEM6gS48lZIjdv0q0L2oCFCqbR84O99XA9ORjAz6eaf5ry4FfGA8yMDI2MDgyNTEyMDc0N1owAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdwwggHYAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI1MTIwNzQ3WjAvBgkqhkiG9w0BCQQxIgQg0xV8kuoZmTLPREuzDn9A2nFk6uc+jwxngJv06AITOqwwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGgwZgIxAMORtmStWCwKwKsaiLGpF8sh0OG1iC4tOrFRmmNktIbLmI9CIQUsE5ApgIm8LWbMwAIxAOEkQlSqUSkaNMPcj+l3vymorX1kyGFtf1kzOX789cV5zvO8oJs+Z4Ob8ZAs+jdMhQ=="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"4lhO8FaP0u0TgqaGyDoLJzovzBgbXG0taEx4BHkzw70="}, "signature":"MEUCIQCpFX77scY1uUFp9gMAb+QbwUYnbSEuscaDAbRBlUP4rgIgBOQ7Ou8BsZLj5Ecm40+95b9vhPXFVfY6lqWy/PzAma4="}}
build/torch212-cxx11-xpu20253-x86_64-linux/xpu_fused_moe.py CHANGED
@@ -26,7 +26,7 @@ def _register_xpu_fake_kernels():
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
- lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4: ptr_D,
30
  )
31
 
32
  _register_if_available(
@@ -106,12 +106,13 @@ def cutlass_grouped_gemm(input_A, input_B, bias, output, expert_token_count, n,
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
- is_B_mxfp4=False)
 
110
 
111
 
112
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
113
  num_rows_per_expert, n, k, num_experts, is_B_int4,
114
- is_B_mxfp4):
115
  expert_first_token_offset = torch.cat([
116
  torch.tensor([0],
117
  dtype=num_rows_per_expert.dtype,
@@ -129,7 +130,8 @@ def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
129
  K=k,
130
  num_experts=num_experts,
131
  is_B_int4=is_B_int4,
132
- is_B_mxfp4=is_B_mxfp4)
 
133
 
134
 
135
  def ceilDiv(a, b):
@@ -206,7 +208,8 @@ def xpu_fused_moe(hidden_states,
206
  ep_size=1,
207
  is_fp8=False,
208
  is_int4=False,
209
- is_mxfp4=False):
 
210
  '''
211
  hidden_states: [num_rows, hidden_size]
212
  w13: [num_experts, 2*inter_size, hidden_size]
@@ -228,6 +231,7 @@ def xpu_fused_moe(hidden_states,
228
  num_experts: int
229
  is_int4: bool
230
  is_mxfp4: bool
 
231
  '''
232
 
233
  # Resolve DTensors to local tensors before passing to custom ops
@@ -266,7 +270,7 @@ def xpu_fused_moe(hidden_states,
266
 
267
  # 4bits support [E, N, K]
268
  # other types [E, K, N]
269
- if not is_int4 and not is_mxfp4:
270
  if not hasattr(w13, 'xpu_fused_moe'):
271
  if needs_transpose:
272
  w13.data = w13.transpose(-1, -2).contiguous()
@@ -389,7 +393,7 @@ def xpu_fused_moe(hidden_states,
389
  ########### gemm1 ##################
390
  input_B = w13
391
 
392
- if not is_fp8 and not is_int4 and not is_mxfp4:
393
  ops.cutlass_grouped_gemm_interface(
394
  ptr_A=gemm1_input,
395
  ptr_B=input_B,
@@ -401,7 +405,8 @@ def xpu_fused_moe(hidden_states,
401
  K=hidden_size,
402
  num_experts=num_experts_per_node,
403
  is_B_int4=is_int4,
404
- is_B_mxfp4=is_mxfp4)
 
405
  else:
406
  ops.cutlass_grouped_gemm_interface(
407
  ptr_A=gemm1_input,
@@ -414,7 +419,8 @@ def xpu_fused_moe(hidden_states,
414
  K=hidden_size,
415
  num_experts=num_experts_per_node,
416
  is_B_int4=is_int4,
417
- is_B_mxfp4=is_mxfp4)
 
418
 
419
  # act
420
  act_output = torch.empty((num_moe_inputs, inter_size),
@@ -435,7 +441,7 @@ def xpu_fused_moe(hidden_states,
435
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
436
  dtype=hidden_states.dtype,
437
  device=hidden_states.device)
438
- if not is_fp8 and not is_int4 and not is_mxfp4:
439
  ops.cutlass_grouped_gemm_interface(
440
  ptr_A=input_A,
441
  ptr_B=input_B,
@@ -447,7 +453,8 @@ def xpu_fused_moe(hidden_states,
447
  K=inter_size,
448
  num_experts=num_experts_per_node,
449
  is_B_int4=is_int4,
450
- is_B_mxfp4=is_mxfp4)
 
451
  else:
452
  ops.cutlass_grouped_gemm_interface(
453
  ptr_A=input_A,
@@ -460,7 +467,8 @@ def xpu_fused_moe(hidden_states,
460
  K=inter_size,
461
  num_experts=num_experts_per_node,
462
  is_B_int4=is_int4,
463
- is_B_mxfp4=is_mxfp4)
 
464
 
465
  ops.moe_gather(output, gemm2_output, topk_weights,
466
  permuted_row_to_unpermuted_row,
@@ -633,6 +641,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
633
  is_fp8 = getattr(self.experts, "is_fp8", False)
634
  is_int4 = getattr(self.experts, "is_int4", False)
635
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
 
636
 
637
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
638
  w2_scales = getattr(self.experts, "down_proj_scales", None)
@@ -685,6 +694,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
685
  is_fp8=is_fp8,
686
  is_int4=is_int4,
687
  is_mxfp4=is_mxfp4,
 
688
  )
689
 
690
  # All-reduce across EP group to combine partial expert outputs
 
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
+ lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4, is_B_mxfp8=False: ptr_D,
30
  )
31
 
32
  _register_if_available(
 
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
+ is_B_mxfp4=False,
110
+ is_B_mxfp8=False)
111
 
112
 
113
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
114
  num_rows_per_expert, n, k, num_experts, is_B_int4,
115
+ is_B_mxfp4, is_B_mxfp8=False):
116
  expert_first_token_offset = torch.cat([
117
  torch.tensor([0],
118
  dtype=num_rows_per_expert.dtype,
 
130
  K=k,
131
  num_experts=num_experts,
132
  is_B_int4=is_B_int4,
133
+ is_B_mxfp4=is_B_mxfp4,
134
+ is_B_mxfp8=is_B_mxfp8)
135
 
136
 
137
  def ceilDiv(a, b):
 
208
  ep_size=1,
209
  is_fp8=False,
210
  is_int4=False,
211
+ is_mxfp4=False,
212
+ is_mxfp8=False):
213
  '''
214
  hidden_states: [num_rows, hidden_size]
215
  w13: [num_experts, 2*inter_size, hidden_size]
 
231
  num_experts: int
232
  is_int4: bool
233
  is_mxfp4: bool
234
+ is_mxfp8: bool
235
  '''
236
 
237
  # Resolve DTensors to local tensors before passing to custom ops
 
270
 
271
  # 4bits support [E, N, K]
272
  # other types [E, K, N]
273
+ if not is_int4 and not is_mxfp4 and not is_mxfp8:
274
  if not hasattr(w13, 'xpu_fused_moe'):
275
  if needs_transpose:
276
  w13.data = w13.transpose(-1, -2).contiguous()
 
393
  ########### gemm1 ##################
394
  input_B = w13
395
 
396
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
397
  ops.cutlass_grouped_gemm_interface(
398
  ptr_A=gemm1_input,
399
  ptr_B=input_B,
 
405
  K=hidden_size,
406
  num_experts=num_experts_per_node,
407
  is_B_int4=is_int4,
408
+ is_B_mxfp4=is_mxfp4,
409
+ is_B_mxfp8=is_mxfp8)
410
  else:
411
  ops.cutlass_grouped_gemm_interface(
412
  ptr_A=gemm1_input,
 
419
  K=hidden_size,
420
  num_experts=num_experts_per_node,
421
  is_B_int4=is_int4,
422
+ is_B_mxfp4=is_mxfp4,
423
+ is_B_mxfp8=is_mxfp8)
424
 
425
  # act
426
  act_output = torch.empty((num_moe_inputs, inter_size),
 
441
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
442
  dtype=hidden_states.dtype,
443
  device=hidden_states.device)
444
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
445
  ops.cutlass_grouped_gemm_interface(
446
  ptr_A=input_A,
447
  ptr_B=input_B,
 
453
  K=inter_size,
454
  num_experts=num_experts_per_node,
455
  is_B_int4=is_int4,
456
+ is_B_mxfp4=is_mxfp4,
457
+ is_B_mxfp8=is_mxfp8)
458
  else:
459
  ops.cutlass_grouped_gemm_interface(
460
  ptr_A=input_A,
 
467
  K=inter_size,
468
  num_experts=num_experts_per_node,
469
  is_B_int4=is_int4,
470
+ is_B_mxfp4=is_mxfp4,
471
+ is_B_mxfp8=is_mxfp8)
472
 
473
  ops.moe_gather(output, gemm2_output, topk_weights,
474
  permuted_row_to_unpermuted_row,
 
641
  is_fp8 = getattr(self.experts, "is_fp8", False)
642
  is_int4 = getattr(self.experts, "is_int4", False)
643
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
644
+ is_mxfp8 = getattr(self.experts, "is_mxfp8", False)
645
 
646
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
647
  w2_scales = getattr(self.experts, "down_proj_scales", None)
 
694
  is_fp8=is_fp8,
695
  is_int4=is_int4,
696
  is_mxfp4=is_mxfp4,
697
+ is_mxfp8=is_mxfp8,
698
  )
699
 
700
  # All-reduce across EP group to combine partial expert outputs
build/torch213-cxx11-xpu20260-x86_64-linux/{_megablocks_xpu_18e92fb.abi3.so → _megablocks_xpu_c4d0dc5.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:201bdec66cfb92b7fbdd57b0e64244c8b96f9f597186eddcbaebd4cf6a58d7ba
3
- size 3187144
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e9e67436714e7f1ac7513960d18a05eae815c650050754fe667d1ddef6cf2210
3
+ size 3931504
build/torch213-cxx11-xpu20260-x86_64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _megablocks_xpu_18e92fb
3
- ops = torch.ops._megablocks_xpu_18e92fb
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_megablocks_xpu_18e92fb::{op_name}"
 
1
  import torch
2
+ from . import _megablocks_xpu_c4d0dc5
3
+ ops = torch.ops._megablocks_xpu_c4d0dc5
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_megablocks_xpu_c4d0dc5::{op_name}"
build/torch213-cxx11-xpu20260-x86_64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "megablocks",
3
- "id": "_megablocks_xpu_18e92fb",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
@@ -38,8 +38,8 @@
38
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
39
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
40
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
41
- "_megablocks_xpu_18e92fb.abi3.so": "IBvexmz7krf73Vew5kJEyLlvn1lxhu3cuuvUz2pY17o=",
42
- "_ops.py": "FKv16fgkCFJdUGepZCjxPap5RUtQQB/nl2EVq8pVyAI=",
43
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
44
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
45
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
@@ -90,7 +90,7 @@
90
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
91
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
92
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
93
- "xpu_fused_moe.py": "Dp6S3fK/Fc4Sr+Ac94vw2zz0v/QTGp6rYeMIUqE3Y/I="
94
  }
95
  },
96
  "provenance": {
@@ -100,7 +100,7 @@
100
  "dirty": false
101
  },
102
  "kernel": {
103
- "sha": "18e92fb6886201ffb91c173f02593777756c793f",
104
  "dirty": false
105
  }
106
  }
 
1
  {
2
  "name": "megablocks",
3
+ "id": "_megablocks_xpu_c4d0dc5",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
 
38
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
39
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
40
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
41
+ "_megablocks_xpu_c4d0dc5.abi3.so": "6eZ0NnFOfxrHUTlg0YoF6ugVxlAFB1T+Zn0d3vbPIhA=",
42
+ "_ops.py": "KZ/xutl7d4r1cvlnq+lt8PGsR1a57OQznlwnP3eVkKI=",
43
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
44
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
45
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
 
90
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
91
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
92
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
93
+ "xpu_fused_moe.py": "sPmuRSpkH1Bmk4hdpz53us8Qpc6yinT9rkld3T8WreI="
94
  }
95
  },
96
  "provenance": {
 
100
  "dirty": false
101
  },
102
  "kernel": {
103
+ "sha": "c4d0dc56661badb9cc47bde647e08fe3b4bf7458",
104
  "dirty": false
105
  }
106
  }
build/torch213-cxx11-xpu20260-x86_64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHSzCCBtCgAwIBAgIUbehWVIsXj1Nn1XSDffNtq3bdGekwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MDg1MTQ3WhcNMjYwODI1MDkwMTQ3WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEbQQsp68Z3XaLyD7LJToT5M7D18uIqo2uDCDsuIKZxlF4N+Y/a6/3rAqrdL4RHjxOc9lTrqRPTp5GszZ7c4ErNaOCBe8wggXrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUk0gOpa+4+a2bFxEr5YBp1XnQna4wHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDE4ZTkyZmI2ODg2MjAxZmZiOTFjMTczZjAyNTkzNzc3NzU2Yzc5M2YwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4Mjc3ODQ2NjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDgeV1MAAAQDAEYwRAIgUjJndgE4Nuf2102k2UjXKzqR87/Q/o2hjJZ9pqtLm5gCIGC5zjFWJOTiFAz2g9s/toY/G7vt9E68PR8YR18WdLMfMAoGCCqGSM49BAMDA2kAMGYCMQC4H983WB83znWe8Y8T4pfoyhOB0N3546EIj3vuv6nyz3PQgUc+yFjzlA+uzgUWR78CMQCbQJtkv6lFLZCA5ueA89V9Dm3cfbq57Wy6iUmEJ2jjjyYx8/tS8de68+231BbnR2I="}, "tlogEntries":[{"logIndex":"2582961996", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1787647907", "inclusionPromise":{"signedEntryTimestamp":"MEUCIQDxUqe1QATEXlf42CBaEIt7ii0HtFEF/qTgGr7sfUYAVwIgVMPm/zTCFa25z4K38v1VoSYJXb9fRo8qswWS50UzNrE="}, "inclusionProof":{"logIndex":"2461057734", "rootHash":"JTEw2Kup6CHqhKbl1o8HJokkBXUWWnt4EthrXtk6sZo=", "treeSize":"2461057737", "hashes":["w+/k6N4x6IQV/Y8GSb8uYbp0yQ+DVfr/iUtQiYE58Rk=", "K+soKkCAPZO+ABb9EI2PwPO5ximd5hgNAWlpt7KatRg=", "eS4fo1SbIHwfnSoKh/xplr0cH55SnMl3FHO6/B55fHE=", "1rekyYBKTt8Cs8b/u2H0ioOT9TTyuIiP+45pVfODx1A=", "XIE8dfPj/yjza6iRLGG/ZYZjFEupzN6GZIi4y6cO5WY=", "mB/UpB9H7CUKaXOtI3tqlR1k0FFQHKKsX4Z8VulGQP8=", "L+ww7xnXOOoVCiQRiBmynDrlvQabAt5VFWzxsBdILtU=", "I6uWY1fVVGvGTO61tOrO/pY4sfzaGT7EJeS0VjVau0M=", "AIf8u9gW8bL2y17W8LUxlNoyuhwQoXMnh4ikfEtQoyA=", "G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=", "RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=", "mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=", "b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=", "SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461057737\nJTEw2Kup6CHqhKbl1o8HJokkBXUWWnt4EthrXtk6sZo=\n\n— rekor.sigstore.dev wNI9ajBGAiEA/y3T4jZIVwzLxFm7H08JyabtLNQSdNZVClum0bwQ2KUCIQDwkFc6m+BpXzZgRIeIaETBmMS163bS49RiUk/DZNiGFw==\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI1Y2VmNDRjM2VkMTFmYTZhZjgyZWJiYTg4ZGNmM2RjMTZhMWI3NTFkYTgyNTM0Njc3NDc2MTFhNDc3MGFiMWVmIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQk91Qi9BMW9IQXdaQll4bGdWU3hGaC9PbEVBcGgxQWRpVVJ4b2wwTWtoMEFpQTlsZHBQM2UxVG11bWpMMDkrWVNuK2JnWWdyc0crUk5DS1pVZzF2bFVOT2c9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRla05EUW5SRFowRjNTVUpCWjBsVlltVm9WMVpKYzFocU1VNXVNVmhUUkdabVRuUnhNMkprUjJWcmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlJHY3hUVlJSTTFkb1kwNU5hbGwzVDBSSk1VMUVhM2ROVkZFelYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZpVVZGemNEWTRXak5ZWVV4NVJEZE1TbFJ2VkRWTk4wUXhPSFZKY1c4eWRVUkRSSE1LZFVsTFduaHNSalJPSzFrdllUWXZNM0pCY1hKa1REUlNTR3A0VDJNNWJGUnljVkpRVkhBMVIzTjZXamRqTkVWeVRtRlBRMEpsT0hkbloxaHlUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZyTUdkUENuQmhLelFyWVRKaVJuaEZjalZaUW5BeFdHNVJibUUwZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOU5WR2hzVDFSS2JWbHFXVFJQUkZsNVRVUkdiVnB0U1RWTlYwMTRDazU2VG0xTlJFa3hUMVJOTTA1Nll6Tk9WRnBxVG5wcmVscHFRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGhPZWs1dFRVUkpNVTlVVFRNS1RucGpNMDVVV21wT2VtdDZXbXBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGdLVG5wT2JVMUVTVEZQVkUwelRucGpNMDVVV21wT2VtdDZXbXBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUkZORnBVYTNrS1dtMUpNazlFWnpKTmFrRjRXbTFhYVU5VVJtcE5WR042V21wQmVVNVVhM3BPZW1NelRucFZNbGw2WXpWTk1sbDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRXcGpNMDlFVVRKT2FtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwVVZsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTTjBKSWEwRUtaSGRDTVVGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVaMlZXTVUxQlFVRlJSQXBCUlZsM1VrRkpaMVZxU201a1owVTBUblZtTWpFd01tc3lWV3BZUzNweFVqZzNMMUV2YnpKb2FrcGFPWEJ4ZEV4dE5XZERTVWRETlhwcVJsZEtUMVJwQ2taQmVqSm5PWE12ZEc5WkwwYzNkblE1UlRZNFVGSTRXVkl4T0Zka1RFMW1UVUZ2UjBORGNVZFRUVFE1UWtGTlJFRXlhMEZOUjFsRFRWRkRORWc1T0RNS1YwSTRNM3B1VjJVNFdUaFVOSEJtYjNsb1QwSXdUak0xTkRaRlNXb3pkblYyTm01NWVqTlFVV2RWWXl0NVJtcDZiRUVyZFhwblZWZFNOemhEVFZGRFlncFJTblJyZGpac1JreGFRMEUxZFdWQk9EbFdPVVJ0TTJObVluRTFOMWQ1Tm1sVmJVVktNbXBxYW5sWmVEZ3ZkRk00WkdVMk9Dc3lNekZDWW01U01razlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyDADAgEAMIICvwYJKoZIhvcNAQcCoIICsDCCAqwCAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgNgCck0Efy6/TXP09NfTs9Q4q9Sfidr6xMYdwFIPHkDsCFGvBWJUrZNLziEKSobt/sCf9h6IkGA8yMDI2MDgyNTA4NTE0N1owAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI1MDg1MTQ3WjAvBgkqhkiG9w0BCQQxIgQgmySY7i01CilNgH25RkRF+7uI1oMrIsyGgODl9Sjh9oYwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwL9UEpX7hIsLq1V9SqfX3mnJ4YpYbY0PfDIhwzU6usTkD7tnVH35t+rTmw0529+wRAjACd5nRkHWwdBKYzoiycqbjq8buFuPVdDbAvetd76nNpqFfFeE0stMrshs7TTaDOEY="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"XO9Ew+0R+mr4Lruojc89wWobdR2oJTRndHYRpHcKse8="}, "signature":"MEQCIBOuB/A1oHAwZBYxlgVSxFh/OlEAph1AdiURxol0Mkh0AiA9ldpP3e1TmumjL09+YSn+bgYgrsG+RNCKZUg1vlUNOg=="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHSTCCBtCgAwIBAgIUEsfCDaGiIjMTh2fWbFNDO7MtkCowCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MTIwNzQ3WhcNMjYwODI1MTIxNzQ3WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmPdHGofC4sgawEo7z3SJT/Ayt9ERh4bgxvOL7buMV+eCrAw2gmH3lYDRyAHRdCkSP2KQuzjQAsjJ19LZCqzw6KOCBe8wggXrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUPsC5HZTI3gn0jq+BQjq4r5S2OgswHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGM0ZDBkYzU2NjYxYmFkYjljYzQ3YmRlNjQ3ZTA4ZmUzYjRiZjc0NTgwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4NDQ2ODk4OTQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDjRyaUAAAQDAEYwRAIgM0GM4ReR0pFWw7Wx/buzmiWJqvaZoMT/xfGlpLZRm1cCIGUMb+0iRQuknEKoQbK+5DveMo3AC6jEpy4nLUXlBadNMAoGCCqGSM49BAMDA2cAMGQCMFodrf0jX0YBZhtrHolQlOygwpaTKfIqEd1KsAEBGzEeyglfDdeCtnlJqyjC2QabTgIwMSJ9rAuw/7JMGuRwKX7SN6y10dj6bcgrWH1h1pMOpRkDviO3UcOW6D7YK0QJh6sI"}, "tlogEntries":[{"logIndex":"2583274400", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1787659668", "inclusionPromise":{"signedEntryTimestamp":"MEYCIQCqfQPWi1/v5rUMFeKZU9k687Y42OyxhJoWYlADuFTFUwIhAIRq8YTYK2Y2WqGWhf4mVDyufmMqpoud0k4fLVFBgMVq"}, "inclusionProof":{"logIndex":"2461370138", "rootHash":"sKa21DCpYU/7LZ9ORZD9C6zjkbDLdRZrxb0LEXD2oF8=", "treeSize":"2461370140", "hashes":["56CyIHBhqSmA3l4hOHXc32F/TItpTDPvieoQQ97VSao=", "y6SajW2RSxSC+qZEPkVTOda5uUFbFye//C1W3E4fOD0=", "cTavF/Ocd3ZeX1e1jnEV1te21vU3vvj+JGzwC/gStgk=", "yW+Ys91jOHBbqiKaKMiTKMYmn8iwJam2ZsB6CNDrzzs=", "BJlxWyo+0U2jxgcimrAeK1pey6FSpHWLOetp0UXRWI4=", "JsX9xGIEwFv7MFelTobmTLz4j1Jl78aSs2G7dkybw0w=", "nwobU/9yRWhsbw80xq3x/uNV1nniMWdUKAqc3UWYsJM=", "EXKrSbeG2qm5APD5QSDN66X7UHz9OSofiW9PyNU7fPM=", "cjIeeutzThxIPTlFFHJqa7bAzn3k2FzK8Nrdd56OWvE=", "+pNXWGIXzU1dqSy/aePHKYtSkDnFinI+/bL5HnurJ6w=", "G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=", "RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=", "mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=", "b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=", "SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461370140\nsKa21DCpYU/7LZ9ORZD9C6zjkbDLdRZrxb0LEXD2oF8=\n\n— rekor.sigstore.dev wNI9ajBFAiBoocRiTqMBmVriZO1sD/o5GwCtMgDY+WHYB3j+0fWVLAIhAPgdJas1OQKZUc4PR5zJpIrE5p3Emu3DDxDwPi16ZReL\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI3MzUwOTg3YTRmYjA2ODdiNDYxY2EzMjJlM2NiYzVhZmY3Y2VhZGQ4ZjBkYzcyZDQ0MmU3OTQ0MzRkNzIxYjc2In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJR09BTGdFYjdMaEJsZ09CSmpZVkhwMUk2bGZIVEZ6alZjVzdJTG9mL2U0cEFpRUFueks1RGZibGF2KzVuYVdseHV1U2lxUWJ0QmN5aHE5cFhvTE8wb0t0eHVRPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRWRU5EUW5SRFowRjNTVUpCWjBsVlJYTm1RMFJoUjJsSmFrMVVhREptVjJKR1RrUlBOMDEwYTBOdmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlZFbDNUbnBSTTFkb1kwNU5hbGwzVDBSSk1VMVVTWGhPZWxFelYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZ0VUdSSVIyOW1RelJ6WjJGM1JXODNlak5UU2xRdlFYbDBPVVZTYURSaVozaDJUMHdLTjJKMVRWWXJaVU55UVhjeVoyMUlNMnhaUkZKNVFVaFNaRU5yVTFBeVMxRjFlbXBSUVhOcVNqRTVURnBEY1hwM05rdFBRMEpsT0hkbloxaHlUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZRYzBNMUNraGFWRWt6WjI0d2FuRXJRbEZxY1RSeU5WTXlUMmR6ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVplbEpyVFVkU2FrNVVXVEpPYWtacFdWZFNhVTlYVG1wT1JHUnBDbHBIVlRKT1JHUnNUVVJvYlZwVVRtbE9SMHB0VG5wUk1VOUVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2xhUjFVeVRrUmtiRTFFYUcwS1dsUk9hVTVIU20xT2VsRXhUMFJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2tLV2tkVk1rNUVaR3hOUkdodFdsUk9hVTVIU20xT2VsRXhUMFJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZE5NRnBFUW1zS1dYcFZNazVxV1hoWmJVWnJXV3BzYWxsNlVUTlpiVkpzVG1wUk0xcFVRVFJhYlZWNldXcFNhVnBxWXpCT1ZHZDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRrUlJNazlFYXpSUFZGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwVVZsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTTjBKSWEwRUtaSGRDTVVGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVhbEo1WVZWQlFVRlJSQXBCUlZsM1VrRkpaMDB3UjAwMFVtVlNNSEJHVjNjM1YzZ3ZZblY2YldsWFNuRjJZVnB2VFZRdmVHWkhiSEJNV2xKdE1XTkRTVWRWVFdJck1HbFNVWFZyQ201RlMyOVJZa3NyTlVSMlpVMXZNMEZETm1wRmNIazBia3hWV0d4Q1lXUk9UVUZ2UjBORGNVZFRUVFE1UWtGTlJFRXlZMEZOUjFGRFRVWnZaSEptTUdvS1dEQlpRbHBvZEhKSWIyeFJiRTk1WjNkd1lWUkxaa2x4UldReFMzTkJSVUpIZWtWbGVXZHNaa1JrWlVOMGJteEtjWGxxUXpKUllXSlVaMGwzVFZOS09RcHlRWFYzTHpkS1RVZDFVbmRMV0RkVFRqWjVNVEJrYWpaaVkyZHlWMGd4YURGd1RVOXdVbXRFZG1sUE0xVmpUMWMyUkRkWlN6QlJTbWcyYzBrS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyDADAgEAMIICvwYJKoZIhvcNAQcCoIICsDCCAqwCAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgRIyiiGiz024oUd3PbWjmpU4Y6+JvU70/lSZrsvLelY0CFF9e0UyujyckpCkQ8/3pRK36GnSgGA8yMDI2MDgyNTEyMDc0N1owAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI1MTIwNzQ3WjAvBgkqhkiG9w0BCQQxIgQgakL2LLBSBy+oQUb+Pe25PcygEP3fQJZCV+Gtb6iAf3IwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwMkmYobhjvzAoBXodVkDPISEvVJD2D8VPMKig4/BXuTpd0ZUS22yF79X5tHAMOkNmAjB/7sdz/RW1HEIQ3AN1fMQwpJY7iKj5JDvrcHaXrQJZczm6BnMfClNitGhQzvaOzDY="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"c1CYek+waHtGHKMi48vFr/fOrdjw3HLUQueUQ01yG3Y="}, "signature":"MEUCIGOALgEb7LhBlgOBJjYVHp1I6lfHTFzjVcW7ILof/e4pAiEAnzK5Dfblav+5naWlxuuSiqQbtBcyhq9pXoLO0oKtxuQ="}}
build/torch213-cxx11-xpu20260-x86_64-linux/xpu_fused_moe.py CHANGED
@@ -26,7 +26,7 @@ def _register_xpu_fake_kernels():
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
- lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4: ptr_D,
30
  )
31
 
32
  _register_if_available(
@@ -106,12 +106,13 @@ def cutlass_grouped_gemm(input_A, input_B, bias, output, expert_token_count, n,
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
- is_B_mxfp4=False)
 
110
 
111
 
112
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
113
  num_rows_per_expert, n, k, num_experts, is_B_int4,
114
- is_B_mxfp4):
115
  expert_first_token_offset = torch.cat([
116
  torch.tensor([0],
117
  dtype=num_rows_per_expert.dtype,
@@ -129,7 +130,8 @@ def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
129
  K=k,
130
  num_experts=num_experts,
131
  is_B_int4=is_B_int4,
132
- is_B_mxfp4=is_B_mxfp4)
 
133
 
134
 
135
  def ceilDiv(a, b):
@@ -206,7 +208,8 @@ def xpu_fused_moe(hidden_states,
206
  ep_size=1,
207
  is_fp8=False,
208
  is_int4=False,
209
- is_mxfp4=False):
 
210
  '''
211
  hidden_states: [num_rows, hidden_size]
212
  w13: [num_experts, 2*inter_size, hidden_size]
@@ -228,6 +231,7 @@ def xpu_fused_moe(hidden_states,
228
  num_experts: int
229
  is_int4: bool
230
  is_mxfp4: bool
 
231
  '''
232
 
233
  # Resolve DTensors to local tensors before passing to custom ops
@@ -266,7 +270,7 @@ def xpu_fused_moe(hidden_states,
266
 
267
  # 4bits support [E, N, K]
268
  # other types [E, K, N]
269
- if not is_int4 and not is_mxfp4:
270
  if not hasattr(w13, 'xpu_fused_moe'):
271
  if needs_transpose:
272
  w13.data = w13.transpose(-1, -2).contiguous()
@@ -389,7 +393,7 @@ def xpu_fused_moe(hidden_states,
389
  ########### gemm1 ##################
390
  input_B = w13
391
 
392
- if not is_fp8 and not is_int4 and not is_mxfp4:
393
  ops.cutlass_grouped_gemm_interface(
394
  ptr_A=gemm1_input,
395
  ptr_B=input_B,
@@ -401,7 +405,8 @@ def xpu_fused_moe(hidden_states,
401
  K=hidden_size,
402
  num_experts=num_experts_per_node,
403
  is_B_int4=is_int4,
404
- is_B_mxfp4=is_mxfp4)
 
405
  else:
406
  ops.cutlass_grouped_gemm_interface(
407
  ptr_A=gemm1_input,
@@ -414,7 +419,8 @@ def xpu_fused_moe(hidden_states,
414
  K=hidden_size,
415
  num_experts=num_experts_per_node,
416
  is_B_int4=is_int4,
417
- is_B_mxfp4=is_mxfp4)
 
418
 
419
  # act
420
  act_output = torch.empty((num_moe_inputs, inter_size),
@@ -435,7 +441,7 @@ def xpu_fused_moe(hidden_states,
435
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
436
  dtype=hidden_states.dtype,
437
  device=hidden_states.device)
438
- if not is_fp8 and not is_int4 and not is_mxfp4:
439
  ops.cutlass_grouped_gemm_interface(
440
  ptr_A=input_A,
441
  ptr_B=input_B,
@@ -447,7 +453,8 @@ def xpu_fused_moe(hidden_states,
447
  K=inter_size,
448
  num_experts=num_experts_per_node,
449
  is_B_int4=is_int4,
450
- is_B_mxfp4=is_mxfp4)
 
451
  else:
452
  ops.cutlass_grouped_gemm_interface(
453
  ptr_A=input_A,
@@ -460,7 +467,8 @@ def xpu_fused_moe(hidden_states,
460
  K=inter_size,
461
  num_experts=num_experts_per_node,
462
  is_B_int4=is_int4,
463
- is_B_mxfp4=is_mxfp4)
 
464
 
465
  ops.moe_gather(output, gemm2_output, topk_weights,
466
  permuted_row_to_unpermuted_row,
@@ -633,6 +641,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
633
  is_fp8 = getattr(self.experts, "is_fp8", False)
634
  is_int4 = getattr(self.experts, "is_int4", False)
635
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
 
636
 
637
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
638
  w2_scales = getattr(self.experts, "down_proj_scales", None)
@@ -685,6 +694,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
685
  is_fp8=is_fp8,
686
  is_int4=is_int4,
687
  is_mxfp4=is_mxfp4,
 
688
  )
689
 
690
  # All-reduce across EP group to combine partial expert outputs
 
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
+ lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4, is_B_mxfp8=False: ptr_D,
30
  )
31
 
32
  _register_if_available(
 
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
+ is_B_mxfp4=False,
110
+ is_B_mxfp8=False)
111
 
112
 
113
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
114
  num_rows_per_expert, n, k, num_experts, is_B_int4,
115
+ is_B_mxfp4, is_B_mxfp8=False):
116
  expert_first_token_offset = torch.cat([
117
  torch.tensor([0],
118
  dtype=num_rows_per_expert.dtype,
 
130
  K=k,
131
  num_experts=num_experts,
132
  is_B_int4=is_B_int4,
133
+ is_B_mxfp4=is_B_mxfp4,
134
+ is_B_mxfp8=is_B_mxfp8)
135
 
136
 
137
  def ceilDiv(a, b):
 
208
  ep_size=1,
209
  is_fp8=False,
210
  is_int4=False,
211
+ is_mxfp4=False,
212
+ is_mxfp8=False):
213
  '''
214
  hidden_states: [num_rows, hidden_size]
215
  w13: [num_experts, 2*inter_size, hidden_size]
 
231
  num_experts: int
232
  is_int4: bool
233
  is_mxfp4: bool
234
+ is_mxfp8: bool
235
  '''
236
 
237
  # Resolve DTensors to local tensors before passing to custom ops
 
270
 
271
  # 4bits support [E, N, K]
272
  # other types [E, K, N]
273
+ if not is_int4 and not is_mxfp4 and not is_mxfp8:
274
  if not hasattr(w13, 'xpu_fused_moe'):
275
  if needs_transpose:
276
  w13.data = w13.transpose(-1, -2).contiguous()
 
393
  ########### gemm1 ##################
394
  input_B = w13
395
 
396
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
397
  ops.cutlass_grouped_gemm_interface(
398
  ptr_A=gemm1_input,
399
  ptr_B=input_B,
 
405
  K=hidden_size,
406
  num_experts=num_experts_per_node,
407
  is_B_int4=is_int4,
408
+ is_B_mxfp4=is_mxfp4,
409
+ is_B_mxfp8=is_mxfp8)
410
  else:
411
  ops.cutlass_grouped_gemm_interface(
412
  ptr_A=gemm1_input,
 
419
  K=hidden_size,
420
  num_experts=num_experts_per_node,
421
  is_B_int4=is_int4,
422
+ is_B_mxfp4=is_mxfp4,
423
+ is_B_mxfp8=is_mxfp8)
424
 
425
  # act
426
  act_output = torch.empty((num_moe_inputs, inter_size),
 
441
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
442
  dtype=hidden_states.dtype,
443
  device=hidden_states.device)
444
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
445
  ops.cutlass_grouped_gemm_interface(
446
  ptr_A=input_A,
447
  ptr_B=input_B,
 
453
  K=inter_size,
454
  num_experts=num_experts_per_node,
455
  is_B_int4=is_int4,
456
+ is_B_mxfp4=is_mxfp4,
457
+ is_B_mxfp8=is_mxfp8)
458
  else:
459
  ops.cutlass_grouped_gemm_interface(
460
  ptr_A=input_A,
 
467
  K=inter_size,
468
  num_experts=num_experts_per_node,
469
  is_B_int4=is_int4,
470
+ is_B_mxfp4=is_mxfp4,
471
+ is_B_mxfp8=is_mxfp8)
472
 
473
  ops.moe_gather(output, gemm2_output, topk_weights,
474
  permuted_row_to_unpermuted_row,
 
641
  is_fp8 = getattr(self.experts, "is_fp8", False)
642
  is_int4 = getattr(self.experts, "is_int4", False)
643
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
644
+ is_mxfp8 = getattr(self.experts, "is_mxfp8", False)
645
 
646
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
647
  w2_scales = getattr(self.experts, "down_proj_scales", None)
 
694
  is_fp8=is_fp8,
695
  is_int4=is_int4,
696
  is_mxfp4=is_mxfp4,
697
+ is_mxfp8=is_mxfp8,
698
  )
699
 
700
  # All-reduce across EP group to combine partial expert outputs