Skip to content
KernelIndex
Search⌘K

submission 19663

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.

test_4.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-amd-fp8-mm-19663?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
78.0µs
#85 of 98
2025-05-10
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 512]
AMD Instinct MI300X
88.5µs
#86 of 98
2025-05-10
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 1536]
AMD Instinct MI300X
148.2µs
#85 of 98
2025-05-10
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=576 · seed=12346
AMD Instinct MI300X
158.0µs
#63 of 98
2025-05-10
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=512 · seed=6563
AMD Instinct MI300X
159.4µs
#65 of 98
2025-05-10
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 256]
AMD Instinct MI300X
246.1µs
#85 of 98
2025-05-10
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 512]
AMD Instinct MI300X
294.1µs
#86 of 98
2025-05-10
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=1536 · seed=8135
AMD Instinct MI300X
338.2µs
#79 of 98
2025-05-10
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 2304]
AMD Instinct MI300X
377.2µs
#84 of 98
2025-05-10
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 2048]
AMD Instinct MI300X
395.2µs
#86 of 98
2025-05-10
Show all 18 measurements ›
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 1536]
AMD Instinct MI300X
584.5µs
#85 of 98
2025-05-10
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=512 · seed=12341
AMD Instinct MI300X
830.3µs
#86 of 98
2025-05-10
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=4608 · seed=7531
AMD Instinct MI300X
879.1µs
#84 of 98
2025-05-10
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=576 · seed=9863
AMD Instinct MI300X
915.8µs
#86 of 98
2025-05-10
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=1536 · seed=6543
AMD Instinct MI300X
1.66ms
#86 of 98
2025-05-10
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 2304]
AMD Instinct MI300X
1.73ms
#84 of 98
2025-05-10
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 2048]
AMD Instinct MI300X
1.75ms
#84 of 98
2025-05-10
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=4608 · seed=65436
AMD Instinct MI300X
3.75ms
#84 of 98
2025-05-10

Reported · How evidence levels are derived →

Source and license

sourceavailable
revision digestsha256:6379da484b9c90a1bab219907648d8127ed9a6b64ad240d8c5da9ab7391b3363
license declaredunknown
license concludedunknown
imported2026-08-15

Kernel source

test_4.py1 lines
IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcgpmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKQ1BQX1dSQVBQRVIgPSAiIiIKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYyk7CiIiIgoKQ1VEQV9TUkMgPSAiIiIKI2luY2x1ZGUgPGhpcC9hbWRfZGV0YWlsL2FtZF9oaXBfZnA4Lmg+CiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4KCnVzaW5nIGYzMngxNiA9IF9fYXR0cmlidXRlX18oIChfX3ZlY3Rvcl9zaXplX18oMTYgKiBzaXplb2YoZmxvYXQpKSApKSBmbG9hdDsKCmNvbnN0ZXhwciBjb25zdCBpbnQgQkxPQ0sgPSAxMjg7CgpfX2RldmljZV9fIHN0YXRpYyB1aW50NjRfdCBwYWNrX3UxNng4X3RvX3U2NCh1aW50MTZfdCogc3JjKQp7CiAgICB1aW50MTZfdCBkc3RbXSA9IHsgc3JjWzFdLCBzcmNbM10sIHNyY1s1XSwgc3JjWzddIH07CiAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkc3QpOwp9CgpfX2dsb2JhbF9fIF9fbGF1bmNoX2JvdW5kc19fKDM4NCwgMSkgdm9pZCBjdXN0b21fa2VybmVsKGNvbnN0IF9faGlwX2ZwOF9lNG0zX2ZudXoqIGEsIGNvbnN0IF9faGlwX2ZwOF9lNG0zX2ZudXoqIGIsIGNvbnN0IGZsb2F0KiBhcywgY29uc3QgZmxvYXQqIGJzLCAKICAgICAgICAgICAgICAgICAgIF9faGlwX2JmbG9hdDE2KiBjLCBpbnQgbSwgaW50IG4sIGludCBrKSB7CiAgICAvLyBZb3VyIGltcGxlbWVudGF0aW9uIGhlcmUKICAgIGludCBjeCA9IDMyICogYmxvY2tJZHgueDsKICAgIGludCBjeSA9IDMyICogYmxvY2tJZHgueTsKICAgIGlmKGN4ID49IG0gfHwgY3kgPj0gbikgcmV0dXJuOwogICAgaW50IHR4ID0gdGhyZWFkSWR4LnggJiAzMTsKICAgIGludCB0eSA9IHRocmVhZElkeC54ID4+IDUgJiAxOwogICAgaW50IHNuID0gKG4gKyBCTE9DSyAtIDEpID4+IDc7CiAgICBpbnQgb2Zmc2V0ID0gdHggKiBrICsgdHkgKiA4OwogICAgYnMgKz0gY3kgPj4gNzsKICAgIGFzICs9IGN4ICsgdHg7CiAgICBhICs9IG9mZnNldCArIGN4ICogazsKICAgIGIgKz0gb2Zmc2V0ICsgY3kgKiBrOwogICAgZjMyeDE2IHJlc3VsdCA9IHsgfTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBrOyBpICs9IEJMT0NLKSB7CiAgICAgICAgY29uc3QgYXV0byogYXAgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ2NF90Kj4oYSArIGkpOwogICAgICAgIGNvbnN0IGF1dG8qIGJwID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50NjRfdCo+KGIgKyBpKTsKICAgICAgICBmMzJ4MTYgYmxvY2tfcmVzdWx0ID0geyB9OwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFswXSwgYXBbMF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzJdLCBhcFsyXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbNF0sIGFwWzRdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFs2XSwgYXBbNl0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzhdLCBhcFs4XSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMTBdLCBhcFsxMF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzEyXSwgYXBbMTJdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFsxNF0sIGFwWzE0XSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICByZXN1bHQgKz0gYmxvY2tfcmVzdWx0ICogYnNbKGkgPj4gNykgKiBzbl0gKiBhc1soaSA+PiA3KSAqIG1dOwogICAgfQogICAgdWludDE2X3QqIHNyYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDE2X3QqPigmcmVzdWx0KTsKICAgIHVpbnQ2NF90KiBkc3QgPSByZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4oYyArICh0eCArIGN4KSAqIG4gKyBjeSArIHR5ICogNCk7CiAgICBkc3RbMF0gPSBwYWNrX3UxNng4X3RvX3U2NChzcmMpOwogICAgZHN0WzJdID0gcGFja191MTZ4OF90b191NjQoc3JjICsgOCk7CiAgICBkc3RbNF0gPSBwYWNrX3UxNng4X3RvX3U2NChzcmMgKyAxNik7CiAgICBkc3RbNl0gPSBwYWNrX3UxNng4X3RvX3U2NChzcmMgKyAyNCk7Cn0KCnZvaWQgZnA4X21tKHRvcmNoOjpUZW5zb3IgYSwgdG9yY2g6OlRlbnNvciBiLCB0b3JjaDo6VGVuc29yIGFzLCB0b3JjaDo6VGVuc29yIGJzLCB0b3JjaDo6VGVuc29yIGMpIHsKICAgIGludCBtID0gYS5zaXplKDApOwogICAgaW50IG4gPSBiLnNpemUoMCk7CiAgICBpbnQgayA9IGEuc2l6ZSgxKTsKICAgIGN1c3RvbV9rZXJuZWw8PDxkaW0zKChtKzMxKS8zMiwgKG4rMzEpLzMyKSwgZGltMyg2NCksIDAsIDA+Pj4gKChfX2hpcF9mcDhfZTRtM19mbnV6KilhLmNvbnRpZ3VvdXMoKS5kYXRhX3B0cigpLCAoX19oaXBfZnA4X2U0bTNfZm51eiopYi5jb250aWd1b3VzKCkuZGF0YV9wdHIoKSwgCiAgICBhcy5kYXRhX3B0cjxmbG9hdD4oKSwgYnMuZGF0YV9wdHI8ZmxvYXQ+KCksIChfX2hpcF9iZmxvYXQxNiopYy5kYXRhX3B0cigpLCBtLCBuLCBrKTsKfQoiIiIKCmltcG9ydCBvcwpvcy5lbnZpcm9uWyJDWFgiXSA9ICJjbGFuZysrIgoKbW9kdWxlID0gbG9hZF9pbmxpbmUoCiAgICBuYW1lPSdmcDhfbW0nLAogICAgY3BwX3NvdXJjZXM9W0NQUF9XUkFQUEVSXSwKICAgIGN1ZGFfc291cmNlcz1bQ1VEQV9TUkNdLAogICAgZnVuY3Rpb25zPVsnZnA4X21tJ10sCiAgICB2ZXJib3NlPVRydWUsCiAgICBleHRyYV9jdWRhX2NmbGFncz1bIi0tb2ZmbG9hZC1hcmNoPWdmeDk0MiIsICItc3RkPWMrKzIwIiwgIi1PMyJdLAopCgoKZGVmIGN1c3RvbV9rZXJuZWwoZGF0YTogaW5wdXRfdCkgLT4gb3V0cHV0X3Q6CiAgICBhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjID0gZGF0YQogICAgbW9kdWxlLmZwOF9tbShhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjKQogICAgcmV0dXJuIGMKCg==

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 18206.

- IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcgpmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKQ1BQX1dSQVBQRVIgPSAiIiIKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYyk7CiIiIgoKQ1VEQV9TUkMgPSAiIiIKI2luY2x1ZGUgPGhpcC9hbWRfZGV0YWlsL2FtZF9oaXBfZnA4Lmg+CiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4KCnVzaW5nIGYzMng0ID0gX19hdHRyaWJ1dGVfXyggKF9fdmVjdG9yX3NpemVfXyg0ICogc2l6ZW9mKGZsb2F0KSkgKSkgZmxvYXQ7Cgpjb25zdGV4cHIgY29uc3QgaW50IEJMT0NLID0gMTI4OwoKX19nbG9iYWxfXyB2b2lkIGN1c3RvbV9rZXJuZWwoY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYSwgY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYiwgY29uc3QgZmxvYXQqIGFzLCBjb25zdCBmbG9hdCogYnMsIAogICAgICAgICAgICAgICAgICAgX19oaXBfYmZsb2F0MTYqIGMsIGludCBtLCBpbnQgbiwgaW50IGspIHsKICAgICAgICAgICAgICAgICAgIAogICAgX19zaGFyZWRfXyBmMzJ4NCBidWZmZXJbMTZdWzRdWzRdOwogICAgZjMyeDQqIHZhbHVlID0gYnVmZmVyW3RocmVhZElkeC54XVt0aHJlYWRJZHgueV07CgogICAgLy8gWW91ciBpbXBsZW1lbnRhdGlvbiBoZXJlCiAgICBpbnQgY3ggPSAxNiAqIGJsb2NrSWR4Lng7CiAgICBpbnQgY3kgPSAxNiAqIGJsb2NrSWR4Lnk7CiAgICBpZihjeCA+PSBtIHx8IGN5ID49IG4pIHJldHVybjsKICAgIAogICAgaW50IHNuID0gKG4gKyBCTE9DSyAtIDEpID4+IDc7CiAgICBpbnQgb2Zmc2V0ID0gdGhyZWFkSWR4LnggKiBrICsgdGhyZWFkSWR4LnkgKiA4OwogICAgYnMgKz0gY3kgPj4gNzsKICAgIGFzICs9IGN4ICsgdGhyZWFkSWR4Lng7CiAgICBhICs9IG9mZnNldCArIGN4ICogazsKICAgIGIgKz0gb2Zmc2V0ICsgY3kgKiBrOwogICAgZjMyeDQgcmVzdWx0ID0geyAwLCAwLCAwLCAwIH07CiAgICBmb3IoaW50IGkgPSBCTE9DSyAqIHRocmVhZElkeC56OyBpIDwgazsgaSArPSBCTE9DSyAqIDQpIHsKICAgICAgICBjb25zdCBhdXRvKiBhcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDY0X3QqPihhICsgaSk7CiAgICAgICAgY29uc3QgYXV0byogYnAgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ2NF90Kj4oYiArIGkpOwogICAgICAgIGYzMng0IGJsb2NrX3Jlc3VsdCA9IHsgMCwgMCwgMCwgMH07CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8xNngxNngzMl9mcDhfZnA4KGJwWzBdLCBhcFswXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzE2eDE2eDMyX2ZwOF9mcDgoYnBbNF0sIGFwWzRdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMTZ4MTZ4MzJfZnA4X2ZwOChicFs4XSwgYXBbOF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8xNngxNngzMl9mcDhfZnA4KGJwWzEyXSwgYXBbMTJdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIHJlc3VsdCArPSBibG9ja19yZXN1bHQgKiBic1soaSA+PiA3KSAqIHNuXSAqIGFzWyhpID4+IDcpICogbV07CiAgICB9CgogICAgdmFsdWVbdGhyZWFkSWR4LnpdID0gcmVzdWx0OwoKICAgIF9fc3luY3RocmVhZHMoKTsKICAgIAogICAgaWYgKDAgPT0gdGhyZWFkSWR4LnopIHsKICAgICAgICByZXN1bHQgKz0gdmFsdWVbMV0gKyB2YWx1ZVsyXSArIHZhbHVlWzNdOwogICAgICAgIF9faGlwX2JmbG9hdDE2KiBkc3QgPSByZWludGVycHJldF9jYXN0PF9faGlwX2JmbG9hdDE2Kj4oYyArICh0aHJlYWRJZHgueCArIGN4KSAqIG4gKyBjeSArIHRocmVhZElkeC55ICogNCk7CiAgICAgICAgZHN0WzBdID0gKF9faGlwX2JmbG9hdDE2KXJlc3VsdFswXTsKICAgICAgICBkc3RbMV0gPSAoX19oaXBfYmZsb2F0MTYpcmVzdWx0WzFdOwogICAgICAgIGRzdFsyXSA9IChfX2hpcF9iZmxvYXQxNilyZXN1bHRbMl07CiAgICAgICAgZHN0WzNdID0gKF9faGlwX2JmbG9hdDE2KXJlc3VsdFszXTsKICAgIH0KfQoKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYykgewogICAgaW50IG0gPSBhLnNpemUoMCk7CiAgICBpbnQgbiA9IGIuc2l6ZSgwKTsKICAgIGludCBrID0gYS5zaXplKDEpOwogICAgY3VzdG9tX2tlcm5lbDw8PGRpbTMoKG0rMTUpLzE2LCAobisxNSkvMTYpLCBkaW0zKDE2LCA0LCA0KSwgMCwgMD4+PiAoKF9faGlwX2ZwOF9lNG0zX2ZudXoqKWEuY29udGlndW91cygpLmRhdGFfcHRyKCksIChfX2hpcF9mcDhfZTRtM19mbnV6KiliLmNvbnRpZ3VvdXMoKS5kYXRhX3B0cigpLCAKICAgIGFzLmRhdGFfcHRyPGZsb2F0PigpLCBicy5kYXRhX3B0cjxmbG9hdD4oKSwgKF9faGlwX2JmbG9hdDE2KiljLmRhdGFfcHRyKCksIG0sIG4sIGspOwogICAgLy9DMTBfQ1VEQV9DSEVDSyhjdWRhR2V0TGFzdEVycm9yKCkpOwp9CiIiIgoKaW1wb3J0IG9zCm9zLmVudmlyb25bIkNYWCJdID0gImNsYW5nKysiCgptb2R1bGUgPSBsb2FkX2lubGluZSgKICAgIG5hbWU9J2ZwOF9tbScsCiAgICBjcHBfc291cmNlcz1bQ1BQX1dSQVBQRVJdLAogICAgY3VkYV9zb3VyY2VzPVtDVURBX1NSQ10sCiAgICBmdW5jdGlvbnM9WydmcDhfbW0nXSwKICAgIHZlcmJvc2U9VHJ1ZSwKICAgIGV4dHJhX2N1ZGFfY2ZsYWdzPVsiLS1vZmZsb2FkLWFyY2g9Z2Z4OTQyIiwgIi1zdGQ9YysrMjAiLCAiLU8zIl0sCikKCgpkZWYgY3VzdG9tX2tlcm5lbChkYXRhOiBpbnB1dF90KSAtPiBvdXRwdXRfdDoKICAgIGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMgPSBkYXRhCiAgICBtb2R1bGUuZnA4X21tKGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMpCiAgICByZXR1cm4gYwoK
No newline at end of file
+ IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcgpmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKQ1BQX1dSQVBQRVIgPSAiIiIKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYyk7CiIiIgoKQ1VEQV9TUkMgPSAiIiIKI2luY2x1ZGUgPGhpcC9hbWRfZGV0YWlsL2FtZF9oaXBfZnA4Lmg+CiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4KCnVzaW5nIGYzMngxNiA9IF9fYXR0cmlidXRlX18oIChfX3ZlY3Rvcl9zaXplX18oMTYgKiBzaXplb2YoZmxvYXQpKSApKSBmbG9hdDsKCmNvbnN0ZXhwciBjb25zdCBpbnQgQkxPQ0sgPSAxMjg7CgpfX2RldmljZV9fIHN0YXRpYyB1aW50NjRfdCBwYWNrX3UxNng4X3RvX3U2NCh1aW50MTZfdCogc3JjKQp7CiAgICB1aW50MTZfdCBkc3RbXSA9IHsgc3JjWzFdLCBzcmNbM10sIHNyY1s1XSwgc3JjWzddIH07CiAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkc3QpOwp9CgpfX2dsb2JhbF9fIF9fbGF1bmNoX2JvdW5kc19fKDM4NCwgMSkgdm9pZCBjdXN0b21fa2VybmVsKGNvbnN0IF9faGlwX2ZwOF9lNG0zX2ZudXoqIGEsIGNvbnN0IF9faGlwX2ZwOF9lNG0zX2ZudXoqIGIsIGNvbnN0IGZsb2F0KiBhcywgY29uc3QgZmxvYXQqIGJzLCAKICAgICAgICAgICAgICAgICAgIF9faGlwX2JmbG9hdDE2KiBjLCBpbnQgbSwgaW50IG4sIGludCBrKSB7CiAgICAvLyBZb3VyIGltcGxlbWVudGF0aW9uIGhlcmUKICAgIGludCBjeCA9IDMyICogYmxvY2tJZHgueDsKICAgIGludCBjeSA9IDMyICogYmxvY2tJZHgueTsKICAgIGlmKGN4ID49IG0gfHwgY3kgPj0gbikgcmV0dXJuOwogICAgaW50IHR4ID0gdGhyZWFkSWR4LnggJiAzMTsKICAgIGludCB0eSA9IHRocmVhZElkeC54ID4+IDUgJiAxOwogICAgaW50IHNuID0gKG4gKyBCTE9DSyAtIDEpID4+IDc7CiAgICBpbnQgb2Zmc2V0ID0gdHggKiBrICsgdHkgKiA4OwogICAgYnMgKz0gY3kgPj4gNzsKICAgIGFzICs9IGN4ICsgdHg7CiAgICBhICs9IG9mZnNldCArIGN4ICogazsKICAgIGIgKz0gb2Zmc2V0ICsgY3kgKiBrOwogICAgZjMyeDE2IHJlc3VsdCA9IHsgfTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBrOyBpICs9IEJMT0NLKSB7CiAgICAgICAgY29uc3QgYXV0byogYXAgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ2NF90Kj4oYSArIGkpOwogICAgICAgIGNvbnN0IGF1dG8qIGJwID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50NjRfdCo+KGIgKyBpKTsKICAgICAgICBmMzJ4MTYgYmxvY2tfcmVzdWx0ID0geyB9OwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFswXSwgYXBbMF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzJdLCBhcFsyXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbNF0sIGFwWzRdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFs2XSwgYXBbNl0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzhdLCBhcFs4XSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMTBdLCBhcFsxMF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzEyXSwgYXBbMTJdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFsxNF0sIGFwWzE0XSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICByZXN1bHQgKz0gYmxvY2tfcmVzdWx0ICogYnNbKGkgPj4gNykgKiBzbl0gKiBhc1soaSA+PiA3KSAqIG1dOwogICAgfQogICAgdWludDE2X3QqIHNyYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDE2X3QqPigmcmVzdWx0KTsKICAgIHVpbnQ2NF90KiBkc3QgPSByZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4oYyArICh0eCArIGN4KSAqIG4gKyBjeSArIHR5ICogNCk7CiAgICBkc3RbMF0gPSBwYWNrX3UxNng4X3RvX3U2NChzcmMpOwogICAgZHN0WzJdID0gcGFja191MTZ4OF90b191NjQoc3JjICsgOCk7CiAgICBkc3RbNF0gPSBwYWNrX3UxNng4X3RvX3U2NChzcmMgKyAxNik7CiAgICBkc3RbNl0gPSBwYWNrX3UxNng4X3RvX3U2NChzcmMgKyAyNCk7Cn0KCnZvaWQgZnA4X21tKHRvcmNoOjpUZW5zb3IgYSwgdG9yY2g6OlRlbnNvciBiLCB0b3JjaDo6VGVuc29yIGFzLCB0b3JjaDo6VGVuc29yIGJzLCB0b3JjaDo6VGVuc29yIGMpIHsKICAgIGludCBtID0gYS5zaXplKDApOwogICAgaW50IG4gPSBiLnNpemUoMCk7CiAgICBpbnQgayA9IGEuc2l6ZSgxKTsKICAgIGN1c3RvbV9rZXJuZWw8PDxkaW0zKChtKzMxKS8zMiwgKG4rMzEpLzMyKSwgZGltMyg2NCksIDAsIDA+Pj4gKChfX2hpcF9mcDhfZTRtM19mbnV6KilhLmNvbnRpZ3VvdXMoKS5kYXRhX3B0cigpLCAoX19oaXBfZnA4X2U0bTNfZm51eiopYi5jb250aWd1b3VzKCkuZGF0YV9wdHIoKSwgCiAgICBhcy5kYXRhX3B0cjxmbG9hdD4oKSwgYnMuZGF0YV9wdHI8ZmxvYXQ+KCksIChfX2hpcF9iZmxvYXQxNiopYy5kYXRhX3B0cigpLCBtLCBuLCBrKTsKfQoiIiIKCmltcG9ydCBvcwpvcy5lbnZpcm9uWyJDWFgiXSA9ICJjbGFuZysrIgoKbW9kdWxlID0gbG9hZF9pbmxpbmUoCiAgICBuYW1lPSdmcDhfbW0nLAogICAgY3BwX3NvdXJjZXM9W0NQUF9XUkFQUEVSXSwKICAgIGN1ZGFfc291cmNlcz1bQ1VEQV9TUkNdLAogICAgZnVuY3Rpb25zPVsnZnA4X21tJ10sCiAgICB2ZXJib3NlPVRydWUsCiAgICBleHRyYV9jdWRhX2NmbGFncz1bIi0tb2ZmbG9hZC1hcmNoPWdmeDk0MiIsICItc3RkPWMrKzIwIiwgIi1PMyJdLAopCgoKZGVmIGN1c3RvbV9rZXJuZWwoZGF0YTogaW5wdXRfdCkgLT4gb3V0cHV0X3Q6CiAgICBhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjID0gZGF0YQogICAgbW9kdWxlLmZwOF9tbShhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjKQogICAgcmV0dXJuIGMKCg==
No newline at end of file

Best evidence level for this revision: reported

JSON