// File: /workspace/github_cpp_makefile_star2_O2/nilnilnil[P]autocomplete/./include/phrase_map.hpp
// Function: phrase_map::test()
int
    test() {
        PhraseMap pm;
        pm.insert(1, "duckduckgo", "");
        pm.insert(2, "duckduckgeese", "");
        pm.insert(1, "duckduckgoose", "");
        pm.insert(9, "duckduckgoo", "");
        pm.insert(10, "duckgo", "");
        pm.insert(3, "dukgo", "");
        pm.insert(2, "luckkuckgo", "");
        pm.insert(5, "chuckchuckgo", "");
        pm.insert(15, "dilli - no one killed jessica", "");
        pm.insert(11, "aaitbaar - no one killed jessica", "");

        pm.finalize();

        show_indexes(pm, "a");
        assert(naive_query(pm, "a") == pm.query("a"));

        show_indexes(pm, "b");
        assert(naive_query(pm, "b") == pm.query("b"));

        show_indexes(pm, "c");
        assert(naive_query(pm, "c") == pm.query("c"));

        show_indexes(pm, "d");
        assert(naive_query(pm, "d") == pm.query("d"));

        show_indexes(pm, "duck");
        assert(naive_query(pm, "duck") == pm.query("duck"));

        show_indexes(pm, "ka");
        assert(naive_query(pm, "ka") == pm.query("ka"));

        return 0;
    }

// Assembly:
pushq %rbx
subq $0x110, %rsp            # imm = 0x110
leaq 0x28(%rsp), %rdi
movl $0xe4e1c0, %esi         # imm = 0xE4E1C0
callq 0x975c
leaq 0xbe38(%rip), %rsi      # 0x1209f
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x97ec
leaq 0xcfc2(%rip), %rbx      # 0x1323f
leaq 0x40(%rsp), %rcx
movq %rbx, (%rcx)
andl $0x0, 0x8(%rcx)
leaq 0x28(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x8(%rsp), %rdx
callq 0x9790
leaq 0x8(%rsp), %rdi
callq 0x5210
leaq 0xbdfe(%rip), %rsi      # 0x120aa
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x97ec
leaq 0x40(%rsp), %rcx
movq %rbx, (%rcx)
andl $0x0, 0x8(%rcx)
leaq 0x28(%rsp), %rdi
pushq $0x2
popq %rsi
leaq 0x8(%rsp), %rdx
callq 0x9790
leaq 0x8(%rsp), %rdi
callq 0x5210
leaq 0xbdce(%rip), %rsi      # 0x120b8
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x97ec
leaq 0x40(%rsp), %rcx
movq %rbx, (%rcx)
andl $0x0, 0x8(%rcx)
leaq 0x28(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x8(%rsp), %rdx
callq 0x9790
leaq 0x8(%rsp), %rdi
callq 0x5210
leaq 0xbd9e(%rip), %rsi      # 0x120c6
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x97ec
leaq 0x40(%rsp), %rcx
movq %rbx, (%rcx)
andl $0x0, 0x8(%rcx)
leaq 0x28(%rsp), %rdi
pushq $0x9
popq %rsi
leaq 0x8(%rsp), %rdx
callq 0x9790
leaq 0x8(%rsp), %rdi
callq 0x5210
leaq 0xbd3d(%rip), %rsi      # 0x120a3
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x97ec
leaq 0x40(%rsp), %rcx
movq %rbx, (%rcx)
andl $0x0, 0x8(%rcx)
leaq 0x28(%rsp), %rdi
pushq $0xa
popq %rsi
leaq 0x8(%rsp), %rdx
callq 0x9790
leaq 0x8(%rsp), %rdi
callq 0x5210
leaq 0xbd2e(%rip), %rsi      # 0x120d2
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x97ec
leaq 0x40(%rsp), %rcx
movq %rbx, (%rcx)
andl $0x0, 0x8(%rcx)
leaq 0x28(%rsp), %rdi
pushq $0x3
popq %rsi
leaq 0x8(%rsp), %rdx
callq 0x9790
leaq 0x8(%rsp), %rdi
callq 0x5210
leaq 0xbcf6(%rip), %rsi      # 0x120d8
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x97ec
leaq 0x40(%rsp), %rcx
movq %rbx, (%rcx)
andl $0x0, 0x8(%rcx)
leaq 0x28(%rsp), %rdi
pushq $0x2
popq %rsi
leaq 0x8(%rsp), %rdx
callq 0x9790
leaq 0x8(%rsp), %rdi
callq 0x5210
leaq 0xbcc3(%rip), %rsi      # 0x120e3
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x97ec
leaq 0x40(%rsp), %rcx
movq %rbx, (%rcx)
andl $0x0, 0x8(%rcx)
leaq 0x28(%rsp), %rdi
pushq $0x5
popq %rsi
leaq 0x8(%rsp), %rdx
callq 0x9790
leaq 0x8(%rsp), %rdi
callq 0x5210
leaq 0xbc92(%rip), %rsi      # 0x120f0
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x97ec
leaq 0x40(%rsp), %rcx
movq %rbx, (%rcx)
andl $0x0, 0x8(%rcx)
leaq 0x28(%rsp), %rdi
pushq $0xf
popq %rsi
leaq 0x8(%rsp), %rdx
callq 0x9790
leaq 0x8(%rsp), %rdi
callq 0x5210
leaq 0xbc72(%rip), %rsi      # 0x1210e
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x97ec
leaq 0x40(%rsp), %rcx
movq %rbx, (%rcx)
andl $0x0, 0x8(%rcx)
leaq 0x28(%rsp), %rdi
pushq $0xb
popq %rsi
leaq 0x8(%rsp), %rdx
callq 0x9790
leaq 0x8(%rsp), %rdi
callq 0x5210
movq 0x28(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0xa89b
leaq 0xbc23(%rip), %rsi      # 0x1210c
leaq 0xf0(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x97ec
leaq 0x28(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x6128
leaq 0xf0(%rsp), %rdi
callq 0x5210
leaq 0xc56d(%rip), %rsi      # 0x12a8e
leaq 0xd0(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x97ec
leaq 0x28(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x6128
leaq 0xd0(%rsp), %rdi
callq 0x5210
leaq 0xd44e(%rip), %rsi      # 0x139a7
leaq 0xb0(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x97ec
leaq 0x28(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x6128
leaq 0xb0(%rsp), %rdi
callq 0x5210
leaq 0xc259(%rip), %rsi      # 0x127ea
leaq 0x90(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x97ec
leaq 0x28(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x6128
leaq 0x90(%rsp), %rdi
callq 0x5210
leaq 0xbb66(%rip), %rsi      # 0x1212f
leaq 0x70(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x97ec
leaq 0x28(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x6128
leaq 0x70(%rsp), %rdi
callq 0x5210
leaq 0xbb3c(%rip), %rsi      # 0x12134
leaq 0x50(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x97ec
leaq 0x28(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x6128
leaq 0x50(%rsp), %rdi
callq 0x5210
leaq 0x28(%rsp), %rdi
callq 0x989c
xorl %eax, %eax
addq $0x110, %rsp            # imm = 0x110
popq %rbx
retq
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
jmp 0x66b7
jmp 0x66be
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
jmp 0x66b7
jmp 0x66be
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
jmp 0x66b7
jmp 0x66be
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
jmp 0x66b7
jmp 0x66be
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
jmp 0x66b7
jmp 0x66be
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
jmp 0x66b7
jmp 0x66be
jmp 0x66be
jmp 0x66af
jmp 0x66be
jmp 0x66af
jmp 0x66be
jmp 0x66af
jmp 0x66be
jmp 0x66af
jmp 0x66be
jmp 0x66af
jmp 0x66be
jmp 0x66af
jmp 0x66be
jmp 0x66af
jmp 0x66be
jmp 0x66af
jmp 0x66be
jmp 0x66af
jmp 0x66be
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x5210
jmp 0x66c1
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x989c
movq %rbx, %rdi
callq 0x58e0