user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<test7>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x28,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x18(%rsp)
  xor    %eax,%eax
  lea    0x8(%rsp),%rdi
  call   <KeyVal_new@plt>
  mov    %eax,%edi
  lea    D375(%rip),%rsi
  call   <_check_err@plt>
  lea    0x10(%rsp),%rbx
  lea    D247(%rip),%r12
  mov    %r12,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %eax,%edi
  lea    D500(%rip),%rbp
  mov    %rbp,%rsi
  call   <_check_err@plt>
  cmpq   $0x0,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D76(%rip),%rsi
  call   <ok@plt>
  mov    %r12,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIndex@plt>
  cmp    $0x2,%eax
  sete   %dil
  movzbl %dil,%edi
  lea    D379(%rip),%rsi
  call   <ok@plt>
  lea    D47(%rip),%rdx
  lea    D330(%rip),%r12
  mov    %r12,%rsi
  mov    0x8(%rsp),%rdi
  call   <KeyVal_setValue@plt>
  mov    %eax,%edi
  lea    D540(%rip),%rsi
  call   <_check_err@plt>
  lea    D260(%rip),%r15
  mov    %r15,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %eax,%edi
  mov    %rbp,%rsi
  call   <_check_err@plt>
  cmpq   $0x0,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D514(%rip),%rsi
  call   <ok@plt>
  mov    %r15,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIndex@plt>
  cmp    $0x2,%eax
  sete   %dil
  movzbl %dil,%edi
  lea    D212(%rip),%rsi
  call   <ok@plt>
  mov    %r12,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %eax,%edi
  mov    %rbp,%rsi
  call   <_check_err@plt>
  cmpq   $0x0,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D563(%rip),%rsi
  call   <ok@plt>
  mov    %r12,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIndex@plt>
  mov    %eax,%edi
  lea    D470(%rip),%r13
  mov    %r13,%rsi
  call   <_check_err@plt>
  cmpq   $0x0,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D73(%rip),%rsi
  call   <ok@plt>
  lea    D224(%rip),%r14
  mov    %r14,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %eax,%edi
  mov    %rbp,%rsi
  call   <_check_err@plt>
  cmpq   $0x1,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D422(%rip),%rsi
  call   <ok@plt>
  mov    %r14,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIndex@plt>
  cmp    $0x2,%eax
  sete   %dil
  movzbl %dil,%edi
  lea    D518(%rip),%rsi
  call   <ok@plt>
  lea    D47(%rip),%rdx
  lea    D430(%rip),%rsi
  mov    0x8(%rsp),%rdi
  call   <KeyVal_setValue@plt>
  mov    %eax,%edi
  lea    D540(%rip),%rsi
  call   <_check_err@plt>
  mov    %r15,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %eax,%edi
  mov    %rbp,%rsi
  call   <_check_err@plt>
  cmpq   $0x0,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D508(%rip),%rsi
  call   <ok@plt>
  mov    %r15,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIndex@plt>
  cmp    $0x2,%eax
  sete   %dil
  movzbl %dil,%edi
  lea    D118(%rip),%rsi
  call   <ok@plt>
  mov    %r12,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %eax,%edi
  mov    %rbp,%rsi
  call   <_check_err@plt>
  cmpq   $0x0,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D485(%rip),%rsi
  call   <ok@plt>
  mov    %r12,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIndex@plt>
  mov    %eax,%edi
  mov    %r13,%rsi
  call   <_check_err@plt>
  cmpq   $0x0,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D117(%rip),%rsi
  call   <ok@plt>
  mov    %r14,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %eax,%edi
  mov    %rbp,%rsi
  call   <_check_err@plt>
  cmpq   $0x1,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D135(%rip),%rsi
  call   <ok@plt>
  mov    %r14,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIndex@plt>
  cmp    $0x2,%eax
  sete   %dil
  movzbl %dil,%edi
  lea    D174(%rip),%rsi
  call   <ok@plt>
  lea    D430(%rip),%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %eax,%edi
  mov    %rbp,%rsi
  call   <_check_err@plt>
  cmpq   $0x1,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D300(%rip),%rsi
  call   <ok@plt>
  lea    D430(%rip),%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIndex@plt>
  mov    %eax,%edi
  mov    %r13,%rsi
  call   <_check_err@plt>
  cmpq   $0x1,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D265(%rip),%rsi
  call   <ok@plt>
  lea    D532(%rip),%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %eax,%edi
  mov    %rbp,%rsi
  call   <_check_err@plt>
  cmpq   $0x2,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D153(%rip),%rsi
  call   <ok@plt>
  lea    D532(%rip),%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIndex@plt>
  cmp    $0x2,%eax
  sete   %dil
  movzbl %dil,%edi
  lea    D82(%rip),%rsi
  call   <ok@plt>
  lea    D47(%rip),%rdx
  lea    D152(%rip),%rsi
  mov    0x8(%rsp),%rdi
  call   <KeyVal_setValue@plt>
  mov    %eax,%edi
  lea    D540(%rip),%rsi
  call   <_check_err@plt>
  mov    %r15,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %eax,%edi
  mov    %rbp,%rsi
  call   <_check_err@plt>
  cmpq   $0x0,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D234(%rip),%rsi
  call   <ok@plt>
  mov    %r15,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIndex@plt>
  cmp    $0x2,%eax
  sete   %dil
  movzbl %dil,%edi
  lea    D427(%rip),%rsi
  call   <ok@plt>
  mov    %r12,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %eax,%edi
  mov    %rbp,%rsi
  call   <_check_err@plt>
  cmpq   $0x0,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D441(%rip),%rsi
  call   <ok@plt>
  mov    %r12,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIndex@plt>
  mov    %eax,%edi
  mov    %r13,%rsi
  call   <_check_err@plt>
  cmpq   $0x0,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D169(%rip),%rsi
  call   <ok@plt>
  mov    %r14,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %eax,%edi
  mov    %rbp,%rsi
  call   <_check_err@plt>
  cmpq   $0x1,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D51(%rip),%rsi
  call   <ok@plt>
  mov    %r14,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIndex@plt>
  cmp    $0x2,%eax
  sete   %dil
  movzbl %dil,%edi
  lea    D482(%rip),%rsi
  call   <ok@plt>
  lea    D430(%rip),%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %eax,%edi
  mov    %rbp,%rsi
  call   <_check_err@plt>
  cmpq   $0x1,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D296(%rip),%rsi
  call   <ok@plt>
  lea    D430(%rip),%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIndex@plt>
  mov    %eax,%edi
  mov    %r13,%rsi
  call   <_check_err@plt>
  cmpq   $0x1,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D122(%rip),%rsi
  call   <ok@plt>
  lea    D532(%rip),%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %eax,%edi
  mov    %rbp,%rsi
  call   <_check_err@plt>
  cmpq   $0x2,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D548(%rip),%rsi
  call   <ok@plt>
  lea    D532(%rip),%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIndex@plt>
  cmp    $0x2,%eax
  sete   %dil
  movzbl %dil,%edi
  lea    D556(%rip),%rsi
  call   <ok@plt>
  lea    D152(%rip),%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %eax,%edi
  mov    %rbp,%rsi
  call   <_check_err@plt>
  cmpq   $0x2,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D95(%rip),%rsi
  call   <ok@plt>
  lea    D152(%rip),%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIndex@plt>
  mov    %eax,%edi
  mov    %r13,%rsi
  call   <_check_err@plt>
  cmpq   $0x2,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D549(%rip),%rsi
  call   <ok@plt>
  lea    D220(%rip),%r12
  mov    %r12,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %eax,%edi
  mov    %rbp,%rsi
  call   <_check_err@plt>
  cmpq   $0x3,0x10(%rsp)
  sete   %dil
  movzbl %dil,%edi
  lea    D235(%rip),%rsi
  call   <ok@plt>
  mov    %r12,%rdx
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <KeyVal_findIndex@plt>
  cmp    $0x2,%eax
  sete   %dil
  movzbl %dil,%edi
  lea    D420(%rip),%rsi
  call   <ok@plt>
  mov    0x8(%rsp),%rdi
  call   <KeyVal_delete@plt>
  mov    %eax,%edi
  lea    D282(%rip),%rsi
  call   <_check_err@plt>
  mov    0x18(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L1
  add    $0x28,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L1:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: tag: D375
type_guessed: string
name: unpack_data
arguments: tag: D247
type_guessed: string
name: unpack_data
arguments: tag: D500
type_guessed: string
name: unpack_data
arguments: tag: D76
type_guessed: string
name: unpack_data
arguments: tag: D379
type_guessed: string
name: unpack_data
arguments: tag: D47
type_guessed: string
name: unpack_data
arguments: tag: D330
type_guessed: string
name: unpack_data
arguments: tag: D540
type_guessed: string
name: unpack_data
arguments: tag: D260
type_guessed: string
name: unpack_data
arguments: tag: D514
type_guessed: string
name: unpack_data
arguments: tag: D212
type_guessed: string
name: unpack_data
arguments: tag: D563
type_guessed: string
name: unpack_data
arguments: tag: D470
type_guessed: string
name: unpack_data
arguments: tag: D73
type_guessed: string
name: unpack_data
arguments: tag: D224
type_guessed: string
name: unpack_data
arguments: tag: D422
type_guessed: string
name: unpack_data
arguments: tag: D518
type_guessed: string
name: unpack_data
arguments: tag: D430
type_guessed: string
name: unpack_data
arguments: tag: D508
type_guessed: string
name: unpack_data
arguments: tag: D118
type_guessed: string
name: unpack_data
arguments: tag: D485
type_guessed: string
name: unpack_data
arguments: tag: D117
type_guessed: string
name: unpack_data
arguments: tag: D135
type_guessed: string
name: unpack_data
arguments: tag: D174
type_guessed: string
name: unpack_data
arguments: tag: D300
type_guessed: string
name: unpack_data
arguments: tag: D265
type_guessed: string
name: unpack_data
arguments: tag: D532
type_guessed: string
name: unpack_data
arguments: tag: D153
type_guessed: string
name: unpack_data
arguments: tag: D82
type_guessed: string
name: unpack_data
arguments: tag: D152
type_guessed: string
name: unpack_data
arguments: tag: D234
type_guessed: string
name: unpack_data
arguments: tag: D427
type_guessed: string
name: unpack_data
arguments: tag: D441
type_guessed: string
name: unpack_data
arguments: tag: D169
type_guessed: string
name: unpack_data
arguments: tag: D51
type_guessed: string
name: unpack_data
arguments: tag: D482
type_guessed: string
name: unpack_data
arguments: tag: D296
type_guessed: string
name: unpack_data
arguments: tag: D122
type_guessed: string
name: unpack_data
arguments: tag: D548
type_guessed: string
name: unpack_data
arguments: tag: D556
type_guessed: string
name: unpack_data
arguments: tag: D95
type_guessed: string
name: unpack_data
arguments: tag: D549
type_guessed: string
name: unpack_data
arguments: tag: D220
type_guessed: string
name: unpack_data
arguments: tag: D235
type_guessed: string
name: unpack_data
arguments: tag: D420
type_guessed: string
name: unpack_data
arguments: tag: D282
type_guessed: string

tool: D375: KeyVal_new

tool: D247: a

tool: D500: KeyVal_findIdealIndex

tool: D76: 7a. findIdealIndex ok on empty array

tool: D379: 7b. findIndex ok on empty array

tool: D47: asdf

tool: D330: 2

tool: D540: KeyVal_setValue

tool: D260: 1

tool: D514: 7d. findIdealIndex-1 ok on array1

tool: D212: 7e. findIndex-1 ok on array1

tool: D563: 7g. findIdealIndex-2 ok on array1

tool: D470: KeyVal_findIndex

tool: D73: 7h. findIndex-2 ok on array1

tool: D224: 3

tool: D422: 7j. findIdealIndex-3 ok on array1

tool: D518: 7k. findIndex-3 ok on array1

tool: D430: 4

tool: D508: 7m. findIdealIndex-1 ok on array2

tool: D118: 7n. findIndex-1 ok on array2

tool: D485: 7p. findIdealIndex-2 ok on array2

tool: D117: 7q. findIndex-2 ok on array2

tool: D135: 7s. findIdealIndex-3 ok on array2

tool: D174: 7t. findIndex-3 ok on array2

tool: D300: 7v. findIdealIndex-4 ok on array2

tool: D265: 7w. findIndex-4 ok on array2

tool: D532: 5

tool: D153: 7y. findIdealIndex-5 ok on array2

tool: D82: 7z. findIndex-5 ok on array2

tool: D152: 6

tool: D234: 7ab. findIdealIndex-1 ok on array3

tool: D427: 7ac. findIndex-1 ok on array3

tool: D441: 7ae. findIdealIndex-2 ok on array3

tool: D169: 7af. findIndex-2 ok on array3

tool: D51: 7ah. findIdealIndex-3 ok on array3

tool: D482: 7ai. findIndex-3 ok on array3

tool: D296: 7ak. findIdealIndex-4 ok on array3

tool: D122: 7al. findIndex-4 ok on array3

tool: D548: 7an. findIdealIndex-5 ok on array3

tool: D556: 7ao. findIndex-5 ok on array3

tool: D95: 7aq. findIdealIndex-6 ok on array3

tool: D549: 7ar. findIndex-6 ok on array3

tool: D220: 7

tool: D235: 7at. findIdealIndex-7 ok on array3

tool: D420: 7au. findIndex-7 ok on array3

tool: D282: KeyVal_delete

assistant: ```c
void test7() {
  struct KeyVal *kv;
  _check_err(KeyVal_new(&kv), "KeyVal_new");
  unsigned long index;
  _check_err(KeyVal_findIdealIndex(&index, kv, "a"), "KeyVal_findIdealIndex");
  ok(index == 0, "7a. findIdealIndex ok on empty array");
  ok(KeyVal_findIndex(&index, kv, "a") == 2, "7b. findIndex ok on empty array");
  _check_err(KeyVal_setValue(kv, "2", "asdf"), "KeyVal_setValue");
  _check_err(KeyVal_findIdealIndex(&index, kv, "1"), "KeyVal_findIdealIndex");
  ok(index == 0, "7d. findIdealIndex-1 ok on array1");
  ok(KeyVal_findIndex(&index, kv, "1") == 2, "7e. findIndex-1 ok on array1");
  _check_err(KeyVal_findIdealIndex(&index, kv, "2"), "KeyVal_findIdealIndex");
  ok(index == 0, "7g. findIdealIndex-2 ok on array1");
  _check_err(KeyVal_findIndex(&index, kv, "2"), "KeyVal_findIndex");
  ok(index == 0, "7h. findIndex-2 ok on array1");
  _check_err(KeyVal_findIdealIndex(&index, kv, "3"), "KeyVal_findIdealIndex");
  ok(index == 1, "7j. findIdealIndex-3 ok on array1");
  ok(KeyVal_findIndex(&index, kv, "3") == 2, "7k. findIndex-3 ok on array1");
  _check_err(KeyVal_setValue(kv, "4", "asdf"), "KeyVal_setValue");
  _check_err(KeyVal_findIdealIndex(&index, kv, "1"), "KeyVal_findIdealIndex");
  ok(index == 0, "7m. findIdealIndex-1 ok on array2");
  ok(KeyVal_findIndex(&index, kv, "1") == 2, "7n. findIndex-1 ok on array2");
  _check_err(KeyVal_findIdealIndex(&index, kv, "2"), "KeyVal_findIdealIndex");
  ok(index == 0, "7p. findIdealIndex-2 ok on array2");
  _check_err(KeyVal_findIndex(&index, kv, "2"), "KeyVal_findIndex");
  ok(index == 0, "7q. findIndex-2 ok on array2");
  _check_err(KeyVal_findIdealIndex(&index, kv, "3"), "KeyVal_findIdealIndex");
  ok(index == 1, "7s. findIdealIndex-3 ok on array2");
  ok(KeyVal_findIndex(&index, kv, "3") == 2, "7t. findIndex-3 ok on array2");
  _check_err(KeyVal_findIdealIndex(&index, kv, "4"), "KeyVal_findIdealIndex");
  ok(index == 1, "7v. findIdealIndex-4 ok on array2");
  _check_err(KeyVal_findIndex(&index, kv, "4"), "KeyVal_findIndex");
  ok(index == 1, "7w. findIndex-4 ok on array2");
  _check_err(KeyVal_findIdealIndex(&index, kv, "5"), "KeyVal_findIdealIndex");
  ok(index == 2, "7y. findIdealIndex-5 ok on array2");
  ok(KeyVal_findIndex(&index, kv, "5") == 2, "7z. findIndex-5 ok on array2");
  _check_err(KeyVal_setValue(kv, "6", "asdf"), "KeyVal_setValue");
  _check_err(KeyVal_findIdealIndex(&index, kv, "1"), "KeyVal_findIdealIndex");
  ok(index == 0, "7ab. findIdealIndex-1 ok on array3");
  ok(KeyVal_findIndex(&index, kv, "1") == 2, "7ac. findIndex-1 ok on array3");
  _check_err(KeyVal_findIdealIndex(&index, kv, "2"), "KeyVal_findIdealIndex");
  ok(index == 0, "7ae. findIdealIndex-2 ok on array3");
  _check_err(KeyVal_findIndex(&index, kv, "2"), "KeyVal_findIndex");
  ok(index == 0, "7af. findIndex-2 ok on array3");
  _check_err(KeyVal_findIdealIndex(&index, kv, "3"), "KeyVal_findIdealIndex");
  ok(index == 1, "7ah. findIdealIndex-3 ok on array3");
  ok(KeyVal_findIndex(&index, kv, "3") == 2, "7ai. findIndex-3 ok on array3");
  _check_err(KeyVal_findIdealIndex(&index, kv, "4"), "KeyVal_findIdealIndex");
  ok(index == 1, "7ak. findIdealIndex-4 ok on array3");
  _check_err(KeyVal_findIndex(&index, kv, "4"), "KeyVal_findIndex");
  ok(index == 1, "7al. findIndex-4 ok on array3");
  _check_err(KeyVal_findIdealIndex(&index, kv, "5"), "KeyVal_findIdealIndex");
  ok(index == 2, "7an. findIdealIndex-5 ok on array3");
  ok(KeyVal_findIndex(&index, kv, "5") == 2, "7ao. findIndex-5 ok on array3");
  _check_err(KeyVal_findIdealIndex(&index, kv, "6"), "KeyVal_findIdealIndex");
  ok(index == 2, "7aq. findIdealIndex-6 ok on array3");
  _check_err(KeyVal_findIndex(&index, kv, "6"), "KeyVal_findIndex");
  ok(index == 2, "7ar. findIndex-6 ok on array3");
  _check_err(KeyVal_findIdealIndex(&index, kv, "7"), "KeyVal_findIdealIndex");
  ok(index == 3, "7at. findIdealIndex-7 ok on array3");
  ok(KeyVal_findIndex(&index, kv, "7") == 2, "7au. findIndex-7 ok on array3");
  _check_err(KeyVal_delete(kv), "KeyVal_delete");
}
```