user: 下面的汇编指令对应的C源代码是什么:

```asm
<test7>:
  endbr64
  push   %r15
  lea    D522(%rip),%r15
  push   %r14
  lea    D488(%rip),%r14
  push   %r13
  lea    D201(%rip),%r13
  push   %r12
  lea    D333(%rip),%r12
  push   %rbp
  push   %rbx
  lea    D454(%rip),%rbx
  sub    $0x28,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x18(%rsp)
  xor    %eax,%eax
  lea    0x8(%rsp),%rdi
  lea    0x10(%rsp),%rbp
  call   <KeyVal_new@plt>
  lea    D356(%rip),%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D376(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  lea    D41(%rip),%r13
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D69(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  lea    D322(%rip),%r10
  mov    0x8(%rsp),%rdi
  mov    %r13,%rsi
  mov    %r10,%rdx
  call   <KeyVal_setValue@plt>
  lea    D240(%rip),%r11
  mov    %r11,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D105(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D242(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D519(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  mov    %r14,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D308(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r15,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x1,0x10(%rsp)
  lea    D514(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r15,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D9(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  lea    D322(%rip),%r10
  mov    0x8(%rsp),%rdi
  lea    D515(%rip),%r8
  mov    %r10,%rdx
  mov    %r8,%rsi
  call   <KeyVal_setValue@plt>
  lea    D240(%rip),%r11
  mov    %r11,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D167(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D545(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D263(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  mov    %r14,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D474(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r15,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x1,0x10(%rsp)
  lea    D491(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r15,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D129(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  lea    D515(%rip),%r8
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r8,%rdx
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x1,0x10(%rsp)
  lea    D236(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  lea    D515(%rip),%r8
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r8,%rdx
  call   <KeyVal_findIndex@plt>
  mov    %r14,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x1,0x10(%rsp)
  lea    D377(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  lea    D358(%rip),%r9
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r9,%rdx
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x2,0x10(%rsp)
  lea    D288(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  lea    D358(%rip),%r9
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r9,%rdx
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D548(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  lea    D322(%rip),%r10
  mov    0x8(%rsp),%rdi
  mov    %r10,%rdx
  lea    D385(%rip),%r10
  mov    %r10,%rsi
  call   <KeyVal_setValue@plt>
  lea    D240(%rip),%r11
  mov    %r11,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D269(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D425(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D280(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  lea    D367(%rip),%r13
  call   <KeyVal_findIndex@plt>
  mov    %r14,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D277(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r15,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x1,0x10(%rsp)
  lea    D370(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r15,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D533(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  lea    D515(%rip),%r8
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r8,%rdx
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x1,0x10(%rsp)
  lea    D546(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  lea    D515(%rip),%r8
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r8,%rdx
  call   <KeyVal_findIndex@plt>
  mov    %r14,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x1,0x10(%rsp)
  lea    D342(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  lea    D358(%rip),%r9
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r9,%rdx
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x2,0x10(%rsp)
  lea    D344(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  lea    D358(%rip),%r9
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r9,%rdx
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D375(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  lea    D385(%rip),%r10
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r10,%rdx
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x2,0x10(%rsp)
  lea    D319(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  lea    D385(%rip),%r10
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r10,%rdx
  call   <KeyVal_findIndex@plt>
  mov    %r14,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x2,0x10(%rsp)
  lea    D77(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x3,0x10(%rsp)
  lea    D95(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D557(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rdi
  call   <KeyVal_delete@plt>
  lea    D387(%rip),%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  mov    0x18(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L4
  add    $0x28,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L4:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: retrieve_data
arguments: label: D522
type_infered: string
name: retrieve_data
arguments: label: D488
type_infered: string
name: retrieve_data
arguments: label: D201
type_infered: string
name: retrieve_data
arguments: label: D333
type_infered: string
name: retrieve_data
arguments: label: D454
type_infered: string
name: retrieve_data
arguments: label: D356
type_infered: string
name: retrieve_data
arguments: label: D376
type_infered: string
name: retrieve_data
arguments: label: D41
type_infered: string
name: retrieve_data
arguments: label: D69
type_infered: string
name: retrieve_data
arguments: label: D322
type_infered: string
name: retrieve_data
arguments: label: D240
type_infered: string
name: retrieve_data
arguments: label: D105
type_infered: string
name: retrieve_data
arguments: label: D242
type_infered: string
name: retrieve_data
arguments: label: D519
type_infered: string
name: retrieve_data
arguments: label: D308
type_infered: string
name: retrieve_data
arguments: label: D514
type_infered: string
name: retrieve_data
arguments: label: D9
type_infered: string
name: retrieve_data
arguments: label: D515
type_infered: string
name: retrieve_data
arguments: label: D167
type_infered: string
name: retrieve_data
arguments: label: D545
type_infered: string
name: retrieve_data
arguments: label: D263
type_infered: string
name: retrieve_data
arguments: label: D474
type_infered: string
name: retrieve_data
arguments: label: D491
type_infered: string
name: retrieve_data
arguments: label: D129
type_infered: string
name: retrieve_data
arguments: label: D236
type_infered: string
name: retrieve_data
arguments: label: D377
type_infered: string
name: retrieve_data
arguments: label: D358
type_infered: string
name: retrieve_data
arguments: label: D288
type_infered: string
name: retrieve_data
arguments: label: D548
type_infered: string
name: retrieve_data
arguments: label: D385
type_infered: string
name: retrieve_data
arguments: label: D269
type_infered: string
name: retrieve_data
arguments: label: D425
type_infered: string
name: retrieve_data
arguments: label: D280
type_infered: string
name: retrieve_data
arguments: label: D367
type_infered: string
name: retrieve_data
arguments: label: D277
type_infered: string
name: retrieve_data
arguments: label: D370
type_infered: string
name: retrieve_data
arguments: label: D533
type_infered: string
name: retrieve_data
arguments: label: D546
type_infered: string
name: retrieve_data
arguments: label: D342
type_infered: string
name: retrieve_data
arguments: label: D344
type_infered: string
name: retrieve_data
arguments: label: D375
type_infered: string
name: retrieve_data
arguments: label: D319
type_infered: string
name: retrieve_data
arguments: label: D77
type_infered: string
name: retrieve_data
arguments: label: D95
type_infered: string
name: retrieve_data
arguments: label: D557
type_infered: string
name: retrieve_data
arguments: label: D387
type_infered: string

tool: D522: 3

tool: D488: KeyVal_findIndex

tool: D201: a

tool: D333: KeyVal_findIdealIndex

tool: D454: 1

tool: D356: KeyVal_new

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

tool: D41: 2

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

tool: D322: asdf

tool: D240: KeyVal_setValue

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

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

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

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

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

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

tool: D515: 4

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

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

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

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

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

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

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

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

tool: D358: 5

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

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

tool: D385: 6

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

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

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

tool: D367: 7

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

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

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

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

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

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

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

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

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

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

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

tool: D387: 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");
}
```