https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56270
case 3: return {{Fragment::PK_H, ConsumePubKey(provider)}};
        case 4: {
            const auto k = ConsumeTimeLock(provider);
            if (!k) return {};
            return {{Fragment::OLDER, *k}};
        }
        case 5: {
            const auto k = ConsumeTimeLock(provider);
            if (!k) return {};
            return {{Fragment::AFTER, *k}};
        }
        case 6: return {{Fragment::SHA256, ConsumeSha256(provider)}};
        case 7: return {{Fragment::HASH256, ConsumeHash256(provider)}};
        case 8: return {{Fragment::RIPEMD160, ConsumeRipemd160(provider)}};
        case 9: return {{Fragment::HASH160, ConsumeHash160(provider)}};
        case 10: {
            const auto k = provider.ConsumeIntegral<uint8_t>();
            const auto n_keys = provider.ConsumeIntegral<uint8_t>();
            if (n_keys > 20 || k == 0 || k > n_keys) return {};
            std::vector<CPubKey> keys{n_keys};
            for (auto& key: keys) key = ConsumePubKey(provider);
            return {{Fragment::MULTI, k, std::move(keys)}};
        }
        case 11: return {{3, Fragment::ANDOR}};
        case 12: return {{2, Fragment::AND_V}};
        case 13: return {{2, Fragment::AND_B}};
        case 15: return {{2, Fragment::OR_B}};
        case 16: return {{2, Fragment::OR_C}};
        case 17: return {{2, Fragment::OR_D}};
        case 18: return {{2, Fragment::OR_I}};