Skip to content
KernelIndex
Search⌘K

submission 18206

KernelBot user 334 · python · License unknown

Use it

Vendorable · source mirrored · license unknownView source →

No package. Vendor the mirrored source: 1 lines, June 9 Researcher Reciprocity License v1.0.

template-hip.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-amd-fp8-mm-18206?include=source"
interfacepython
Compatibility
measured onAMD Instinct MI300X
declared hardwareAMD Instinct MI300X
architecturesgfx942
dtypesfp32, fp8_e4m3fnuz

Benchmark evidence

18 measurements across 1 GPU, fastest first.

Operation / workload
Hardware
Latency
Rank
Observed
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 256]
AMD Instinct MI300X
99.8µs
#87 of 98
2025-05-08
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 512]
AMD Instinct MI300X
110.7µs
#87 of 98
2025-05-08
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=512 · seed=6563
AMD Instinct MI300X
193.4µs
#70 of 98
2025-05-08
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 1536]
AMD Instinct MI300X
197.3µs
#87 of 98
2025-05-08
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=576 · seed=12346
AMD Instinct MI300X
205.5µs
#70 of 98
2025-05-08
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 256]
AMD Instinct MI300X
405.7µs
#90 of 98
2025-05-08
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=1536 · seed=8135
AMD Instinct MI300X
431.7µs
#84 of 98
2025-05-08
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 512]
AMD Instinct MI300X
447.6µs
#91 of 98
2025-05-08
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 2048]
AMD Instinct MI300X
524.3µs
#87 of 98
2025-05-08
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 2304]
AMD Instinct MI300X
578.3µs
#87 of 98
2025-05-08
Show all 18 measurements ›
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 1536]
AMD Instinct MI300X
937.4µs
#91 of 98
2025-05-08
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=512 · seed=12341
AMD Instinct MI300X
1.06ms
#87 of 98
2025-05-08
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=576 · seed=9863
AMD Instinct MI300X
1.14ms
#87 of 98
2025-05-08
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=4608 · seed=7531
AMD Instinct MI300X
1.22ms
#87 of 98
2025-05-08
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=1536 · seed=6543
AMD Instinct MI300X
2.48ms
#87 of 98
2025-05-08
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 2048]
AMD Instinct MI300X
2.79ms
#94 of 98
2025-05-08
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 2304]
AMD Instinct MI300X
3.02ms
#90 of 98
2025-05-08
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=4608 · seed=65436
AMD Instinct MI300X
6.24ms
#91 of 98
2025-05-08

Reported · How evidence levels are derived →

Source and license

sourceavailable
revision digestsha256:f87a8dd868f3c49dd03c921b755f82008972b33b303a37cbda6f9d1d45056229
license declaredunknown
license concludedunknown
imported2026-08-15

Kernel source

template-hip.py1 lines
IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcgpmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKQ1BQX1dSQVBQRVIgPSAiIiIKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYyk7CiIiIgoKQ1VEQV9TUkMgPSAiIiIKI2luY2x1ZGUgPGhpcC9hbWRfZGV0YWlsL2FtZF9oaXBfZnA4Lmg+CiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4KCnVzaW5nIGYzMng0ID0gX19hdHRyaWJ1dGVfXyggKF9fdmVjdG9yX3NpemVfXyg0ICogc2l6ZW9mKGZsb2F0KSkgKSkgZmxvYXQ7Cgpjb25zdGV4cHIgY29uc3QgaW50IEJMT0NLID0gMTI4OwoKX19nbG9iYWxfXyB2b2lkIGN1c3RvbV9rZXJuZWwoY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYSwgY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYiwgY29uc3QgZmxvYXQqIGFzLCBjb25zdCBmbG9hdCogYnMsIAogICAgICAgICAgICAgICAgICAgX19oaXBfYmZsb2F0MTYqIGMsIGludCBtLCBpbnQgbiwgaW50IGspIHsKICAgICAgICAgICAgICAgICAgIAogICAgX19zaGFyZWRfXyBmMzJ4NCBidWZmZXJbMTZdWzRdWzRdOwogICAgZjMyeDQqIHZhbHVlID0gYnVmZmVyW3RocmVhZElkeC54XVt0aHJlYWRJZHgueV07CgogICAgLy8gWW91ciBpbXBsZW1lbnRhdGlvbiBoZXJlCiAgICBpbnQgY3ggPSAxNiAqIGJsb2NrSWR4Lng7CiAgICBpbnQgY3kgPSAxNiAqIGJsb2NrSWR4Lnk7CiAgICBpZihjeCA+PSBtIHx8IGN5ID49IG4pIHJldHVybjsKICAgIAogICAgaW50IHNuID0gKG4gKyBCTE9DSyAtIDEpID4+IDc7CiAgICBpbnQgb2Zmc2V0ID0gdGhyZWFkSWR4LnggKiBrICsgdGhyZWFkSWR4LnkgKiA4OwogICAgYnMgKz0gY3kgPj4gNzsKICAgIGFzICs9IGN4ICsgdGhyZWFkSWR4Lng7CiAgICBhICs9IG9mZnNldCArIGN4ICogazsKICAgIGIgKz0gb2Zmc2V0ICsgY3kgKiBrOwogICAgZjMyeDQgcmVzdWx0ID0geyAwLCAwLCAwLCAwIH07CiAgICBmb3IoaW50IGkgPSBCTE9DSyAqIHRocmVhZElkeC56OyBpIDwgazsgaSArPSBCTE9DSyAqIDQpIHsKICAgICAgICBjb25zdCBhdXRvKiBhcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDY0X3QqPihhICsgaSk7CiAgICAgICAgY29uc3QgYXV0byogYnAgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ2NF90Kj4oYiArIGkpOwogICAgICAgIGYzMng0IGJsb2NrX3Jlc3VsdCA9IHsgMCwgMCwgMCwgMH07CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8xNngxNngzMl9mcDhfZnA4KGJwWzBdLCBhcFswXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzE2eDE2eDMyX2ZwOF9mcDgoYnBbNF0sIGFwWzRdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMTZ4MTZ4MzJfZnA4X2ZwOChicFs4XSwgYXBbOF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8xNngxNngzMl9mcDhfZnA4KGJwWzEyXSwgYXBbMTJdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIHJlc3VsdCArPSBibG9ja19yZXN1bHQgKiBic1soaSA+PiA3KSAqIHNuXSAqIGFzWyhpID4+IDcpICogbV07CiAgICB9CgogICAgdmFsdWVbdGhyZWFkSWR4LnpdID0gcmVzdWx0OwoKICAgIF9fc3luY3RocmVhZHMoKTsKICAgIAogICAgaWYgKDAgPT0gdGhyZWFkSWR4LnopIHsKICAgICAgICByZXN1bHQgKz0gdmFsdWVbMV0gKyB2YWx1ZVsyXSArIHZhbHVlWzNdOwogICAgICAgIF9faGlwX2JmbG9hdDE2KiBkc3QgPSByZWludGVycHJldF9jYXN0PF9faGlwX2JmbG9hdDE2Kj4oYyArICh0aHJlYWRJZHgueCArIGN4KSAqIG4gKyBjeSArIHRocmVhZElkeC55ICogNCk7CiAgICAgICAgZHN0WzBdID0gKF9faGlwX2JmbG9hdDE2KXJlc3VsdFswXTsKICAgICAgICBkc3RbMV0gPSAoX19oaXBfYmZsb2F0MTYpcmVzdWx0WzFdOwogICAgICAgIGRzdFsyXSA9IChfX2hpcF9iZmxvYXQxNilyZXN1bHRbMl07CiAgICAgICAgZHN0WzNdID0gKF9faGlwX2JmbG9hdDE2KXJlc3VsdFszXTsKICAgIH0KfQoKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYykgewogICAgaW50IG0gPSBhLnNpemUoMCk7CiAgICBpbnQgbiA9IGIuc2l6ZSgwKTsKICAgIGludCBrID0gYS5zaXplKDEpOwogICAgY3VzdG9tX2tlcm5lbDw8PGRpbTMoKG0rMTUpLzE2LCAobisxNSkvMTYpLCBkaW0zKDE2LCA0LCA0KSwgMCwgMD4+PiAoKF9faGlwX2ZwOF9lNG0zX2ZudXoqKWEuY29udGlndW91cygpLmRhdGFfcHRyKCksIChfX2hpcF9mcDhfZTRtM19mbnV6KiliLmNvbnRpZ3VvdXMoKS5kYXRhX3B0cigpLCAKICAgIGFzLmRhdGFfcHRyPGZsb2F0PigpLCBicy5kYXRhX3B0cjxmbG9hdD4oKSwgKF9faGlwX2JmbG9hdDE2KiljLmRhdGFfcHRyKCksIG0sIG4sIGspOwogICAgLy9DMTBfQ1VEQV9DSEVDSyhjdWRhR2V0TGFzdEVycm9yKCkpOwp9CiIiIgoKaW1wb3J0IG9zCm9zLmVudmlyb25bIkNYWCJdID0gImNsYW5nKysiCgptb2R1bGUgPSBsb2FkX2lubGluZSgKICAgIG5hbWU9J2ZwOF9tbScsCiAgICBjcHBfc291cmNlcz1bQ1BQX1dSQVBQRVJdLAogICAgY3VkYV9zb3VyY2VzPVtDVURBX1NSQ10sCiAgICBmdW5jdGlvbnM9WydmcDhfbW0nXSwKICAgIHZlcmJvc2U9VHJ1ZSwKICAgIGV4dHJhX2N1ZGFfY2ZsYWdzPVsiLS1vZmZsb2FkLWFyY2g9Z2Z4OTQyIiwgIi1zdGQ9YysrMjAiLCAiLU8zIl0sCikKCgpkZWYgY3VzdG9tX2tlcm5lbChkYXRhOiBpbnB1dF90KSAtPiBvdXRwdXRfdDoKICAgIGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMgPSBkYXRhCiAgICBtb2R1bGUuZnA4X21tKGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMpCiAgICByZXR1cm4gYwoK

Source code from GPU Mode and the KernelBot dataset · June 9 Researcher Reciprocity License v1.0

Changes from previous submission

Against this author's previous submission submission 16780.

- IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcgpmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKQ1BQX1dSQVBQRVIgPSAiIiIKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYyk7CiIiIgoKQ1VEQV9TUkMgPSAiIiIKI2luY2x1ZGUgPGhpcC9hbWRfZGV0YWlsL2FtZF9oaXBfZnA4Lmg+CiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4KCnVzaW5nIGYzMng0ID0gX19hdHRyaWJ1dGVfXyggKF9fdmVjdG9yX3NpemVfXyg0ICogc2l6ZW9mKGZsb2F0KSkgKSkgZmxvYXQ7Cgpjb25zdGV4cHIgY29uc3QgaW50IEJMT0NLID0gMTI4OwoKX19nbG9iYWxfXyB2b2lkIGN1c3RvbV9rZXJuZWwoY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYSwgY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYiwgY29uc3QgZmxvYXQqIGFzLCBjb25zdCBmbG9hdCogYnMsIAogICAgICAgICAgICAgICAgICAgX19oaXBfYmZsb2F0MTYqIGMsIGludCBtLCBpbnQgbiwgaW50IGspIHsKICAgICAgICAgICAgICAgICAgIAogICAgLy8gWW91ciBpbXBsZW1lbnRhdGlvbiBoZXJlCiAgICBpbnQgY3ggPSAxNiAqIGJsb2NrSWR4Lng7CiAgICBpbnQgY3kgPSAxNiAqIGJsb2NrSWR4Lnk7CiAgICBpZihjeCA+PSBtIHx8IGN5ID49IG4pIHJldHVybjsKICAgIAogICAgaW50IHNuID0gKG4gKyBCTE9DSyAtIDEpIC8gQkxPQ0s7CiAgICBicyArPSBjeSAvIEJMT0NLOwogICAgYXMgKz0gY3ggKyB0aHJlYWRJZHgueDsKICAgIAogICAgZjMyeDQgcmVzdWx0ID0geyAwLCAwLCAwLCAwIH07CgogICAgZm9yKGludCBpID0gMDsgaSA8IGs7IGkgKz0gQkxPQ0spIHsKCiAgICAgICAgZjMyeDQgYmxvY2tfcmVzdWx0ID0geyAwLCAwLCAwLCAwfTsKICAgICAgICBmb3IoaW50IGlpID0gMDsgaWkgPCBCTE9DSzsgaWkgKz0gMzIpIHsKICAgICAgICAgICAgY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYXAgPSBhICsgY3ggKiBrICsgaSArIGlpOwogICAgICAgICAgICBjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6KiBicCA9IGIgKyBjeSAqIGsgKyBpICsgaWk7CiAgICAgICAgICAgIHVpbnQ2NF90IHMwID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50NjRfdCo+KGFwICsgdGhyZWFkSWR4LnggKiBrKVt0aHJlYWRJZHgueV07CiAgICAgICAgICAgIHVpbnQ2NF90IHMxID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50NjRfdCo+KGJwICsgdGhyZWFkSWR4LnggKiBrKVt0aHJlYWRJZHgueV07CiAgICAgICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMTZ4MTZ4MzJfZnA4X2ZwOChzMSwgczAsIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJlc3VsdCArPSBibG9ja19yZXN1bHQgKiBic1tpL0JMT0NLICogc25dICogYXNbaS9CTE9DSyAqIG1dOwogICAgfQogICAgCiAgICAvLyBmaW5hbGx5LCB3cml0ZSB0aGUgcmVzdWx0IGFzIGJmMTYKICAgIF9faGlwX2JmbG9hdDE2KiBkc3QgPSByZWludGVycHJldF9jYXN0PF9faGlwX2JmbG9hdDE2Kj4oYyArICh0aHJlYWRJZHgueCArIGN4KSAqIG4gKyBjeSArIHRocmVhZElkeC55ICogNCk7CiAgICBkc3RbMF0gPSAoX19oaXBfYmZsb2F0MTYpcmVzdWx0WzBdOwogICAgZHN0WzFdID0gKF9faGlwX2JmbG9hdDE2KXJlc3VsdFsxXTsKICAgIGRzdFsyXSA9IChfX2hpcF9iZmxvYXQxNilyZXN1bHRbMl07CiAgICBkc3RbM10gPSAoX19oaXBfYmZsb2F0MTYpcmVzdWx0WzNdOwp9Cgp2b2lkIGZwOF9tbSh0b3JjaDo6VGVuc29yIGEsIHRvcmNoOjpUZW5zb3IgYiwgdG9yY2g6OlRlbnNvciBhcywgdG9yY2g6OlRlbnNvciBicywgdG9yY2g6OlRlbnNvciBjKSB7CiAgICBpbnQgbSA9IGEuc2l6ZSgwKTsKICAgIGludCBuID0gYi5zaXplKDApOwogICAgaW50IGsgPSBhLnNpemUoMSk7CiAgICBjdXN0b21fa2VybmVsPDw8ZGltMygobSsxNSkvMTYsIChuKzE1KS8xNiksIGRpbTMoMTYsIDQpLCAwLCAwPj4+ICgoX19oaXBfZnA4X2U0bTNfZm51eiopYS5jb250aWd1b3VzKCkuZGF0YV9wdHIoKSwgKF9faGlwX2ZwOF9lNG0zX2ZudXoqKWIuY29udGlndW91cygpLmRhdGFfcHRyKCksIAogICAgYXMuZGF0YV9wdHI8ZmxvYXQ+KCksIGJzLmRhdGFfcHRyPGZsb2F0PigpLCAoX19oaXBfYmZsb2F0MTYqKWMuZGF0YV9wdHIoKSwgbSwgbiwgayk7CiAgICAvL0MxMF9DVURBX0NIRUNLKGN1ZGFHZXRMYXN0RXJyb3IoKSk7Cn0KIiIiCgppbXBvcnQgb3MKb3MuZW52aXJvblsiQ1hYIl0gPSAiY2xhbmcrKyIKCm1vZHVsZSA9IGxvYWRfaW5saW5lKAogICAgbmFtZT0nZnA4X21tJywKICAgIGNwcF9zb3VyY2VzPVtDUFBfV1JBUFBFUl0sCiAgICBjdWRhX3NvdXJjZXM9W0NVREFfU1JDXSwKICAgIGZ1bmN0aW9ucz1bJ2ZwOF9tbSddLAogICAgdmVyYm9zZT1UcnVlLAogICAgZXh0cmFfY3VkYV9jZmxhZ3M9WyItLW9mZmxvYWQtYXJjaD1nZng5NDIiLCAiLXN0ZD1jKysyMCJdLAopCgoKZGVmIGN1c3RvbV9rZXJuZWwoZGF0YTogaW5wdXRfdCkgLT4gb3V0cHV0X3Q6CiAgICBhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjID0gZGF0YQogICAgbW9kdWxlLmZwOF9tbShhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjKQogICAgcmV0dXJuIGMKCg==
No newline at end of file
+ IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcgpmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKQ1BQX1dSQVBQRVIgPSAiIiIKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYyk7CiIiIgoKQ1VEQV9TUkMgPSAiIiIKI2luY2x1ZGUgPGhpcC9hbWRfZGV0YWlsL2FtZF9oaXBfZnA4Lmg+CiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4KCnVzaW5nIGYzMng0ID0gX19hdHRyaWJ1dGVfXyggKF9fdmVjdG9yX3NpemVfXyg0ICogc2l6ZW9mKGZsb2F0KSkgKSkgZmxvYXQ7Cgpjb25zdGV4cHIgY29uc3QgaW50IEJMT0NLID0gMTI4OwoKX19nbG9iYWxfXyB2b2lkIGN1c3RvbV9rZXJuZWwoY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYSwgY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYiwgY29uc3QgZmxvYXQqIGFzLCBjb25zdCBmbG9hdCogYnMsIAogICAgICAgICAgICAgICAgICAgX19oaXBfYmZsb2F0MTYqIGMsIGludCBtLCBpbnQgbiwgaW50IGspIHsKICAgICAgICAgICAgICAgICAgIAogICAgX19zaGFyZWRfXyBmMzJ4NCBidWZmZXJbMTZdWzRdWzRdOwogICAgZjMyeDQqIHZhbHVlID0gYnVmZmVyW3RocmVhZElkeC54XVt0aHJlYWRJZHgueV07CgogICAgLy8gWW91ciBpbXBsZW1lbnRhdGlvbiBoZXJlCiAgICBpbnQgY3ggPSAxNiAqIGJsb2NrSWR4Lng7CiAgICBpbnQgY3kgPSAxNiAqIGJsb2NrSWR4Lnk7CiAgICBpZihjeCA+PSBtIHx8IGN5ID49IG4pIHJldHVybjsKICAgIAogICAgaW50IHNuID0gKG4gKyBCTE9DSyAtIDEpID4+IDc7CiAgICBpbnQgb2Zmc2V0ID0gdGhyZWFkSWR4LnggKiBrICsgdGhyZWFkSWR4LnkgKiA4OwogICAgYnMgKz0gY3kgPj4gNzsKICAgIGFzICs9IGN4ICsgdGhyZWFkSWR4Lng7CiAgICBhICs9IG9mZnNldCArIGN4ICogazsKICAgIGIgKz0gb2Zmc2V0ICsgY3kgKiBrOwogICAgZjMyeDQgcmVzdWx0ID0geyAwLCAwLCAwLCAwIH07CiAgICBmb3IoaW50IGkgPSBCTE9DSyAqIHRocmVhZElkeC56OyBpIDwgazsgaSArPSBCTE9DSyAqIDQpIHsKICAgICAgICBjb25zdCBhdXRvKiBhcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDY0X3QqPihhICsgaSk7CiAgICAgICAgY29uc3QgYXV0byogYnAgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ2NF90Kj4oYiArIGkpOwogICAgICAgIGYzMng0IGJsb2NrX3Jlc3VsdCA9IHsgMCwgMCwgMCwgMH07CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8xNngxNngzMl9mcDhfZnA4KGJwWzBdLCBhcFswXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzE2eDE2eDMyX2ZwOF9mcDgoYnBbNF0sIGFwWzRdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMTZ4MTZ4MzJfZnA4X2ZwOChicFs4XSwgYXBbOF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8xNngxNngzMl9mcDhfZnA4KGJwWzEyXSwgYXBbMTJdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIHJlc3VsdCArPSBibG9ja19yZXN1bHQgKiBic1soaSA+PiA3KSAqIHNuXSAqIGFzWyhpID4+IDcpICogbV07CiAgICB9CgogICAgdmFsdWVbdGhyZWFkSWR4LnpdID0gcmVzdWx0OwoKICAgIF9fc3luY3RocmVhZHMoKTsKICAgIAogICAgaWYgKDAgPT0gdGhyZWFkSWR4LnopIHsKICAgICAgICByZXN1bHQgKz0gdmFsdWVbMV0gKyB2YWx1ZVsyXSArIHZhbHVlWzNdOwogICAgICAgIF9faGlwX2JmbG9hdDE2KiBkc3QgPSByZWludGVycHJldF9jYXN0PF9faGlwX2JmbG9hdDE2Kj4oYyArICh0aHJlYWRJZHgueCArIGN4KSAqIG4gKyBjeSArIHRocmVhZElkeC55ICogNCk7CiAgICAgICAgZHN0WzBdID0gKF9faGlwX2JmbG9hdDE2KXJlc3VsdFswXTsKICAgICAgICBkc3RbMV0gPSAoX19oaXBfYmZsb2F0MTYpcmVzdWx0WzFdOwogICAgICAgIGRzdFsyXSA9IChfX2hpcF9iZmxvYXQxNilyZXN1bHRbMl07CiAgICAgICAgZHN0WzNdID0gKF9faGlwX2JmbG9hdDE2KXJlc3VsdFszXTsKICAgIH0KfQoKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYykgewogICAgaW50IG0gPSBhLnNpemUoMCk7CiAgICBpbnQgbiA9IGIuc2l6ZSgwKTsKICAgIGludCBrID0gYS5zaXplKDEpOwogICAgY3VzdG9tX2tlcm5lbDw8PGRpbTMoKG0rMTUpLzE2LCAobisxNSkvMTYpLCBkaW0zKDE2LCA0LCA0KSwgMCwgMD4+PiAoKF9faGlwX2ZwOF9lNG0zX2ZudXoqKWEuY29udGlndW91cygpLmRhdGFfcHRyKCksIChfX2hpcF9mcDhfZTRtM19mbnV6KiliLmNvbnRpZ3VvdXMoKS5kYXRhX3B0cigpLCAKICAgIGFzLmRhdGFfcHRyPGZsb2F0PigpLCBicy5kYXRhX3B0cjxmbG9hdD4oKSwgKF9faGlwX2JmbG9hdDE2KiljLmRhdGFfcHRyKCksIG0sIG4sIGspOwogICAgLy9DMTBfQ1VEQV9DSEVDSyhjdWRhR2V0TGFzdEVycm9yKCkpOwp9CiIiIgoKaW1wb3J0IG9zCm9zLmVudmlyb25bIkNYWCJdID0gImNsYW5nKysiCgptb2R1bGUgPSBsb2FkX2lubGluZSgKICAgIG5hbWU9J2ZwOF9tbScsCiAgICBjcHBfc291cmNlcz1bQ1BQX1dSQVBQRVJdLAogICAgY3VkYV9zb3VyY2VzPVtDVURBX1NSQ10sCiAgICBmdW5jdGlvbnM9WydmcDhfbW0nXSwKICAgIHZlcmJvc2U9VHJ1ZSwKICAgIGV4dHJhX2N1ZGFfY2ZsYWdzPVsiLS1vZmZsb2FkLWFyY2g9Z2Z4OTQyIiwgIi1zdGQ9YysrMjAiLCAiLU8zIl0sCikKCgpkZWYgY3VzdG9tX2tlcm5lbChkYXRhOiBpbnB1dF90KSAtPiBvdXRwdXRfdDoKICAgIGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMgPSBkYXRhCiAgICBtb2R1bGUuZnA4X21tKGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMpCiAgICByZXR1cm4gYwoK
No newline at end of file

Best evidence level for this revision: reported

JSON