// File: /workspace/github_cpp_makefile_star2_O2/splatlab[P]debgr/debruijn_graph.cc
// Function: void dna::debruijn_graph::print_graph<std::stack>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, dna::debruijn_graph::nodes_container<std::stack>, dna::debruijn_graph::edges_container<std::stack>, std::ostream&) const
void debruijn_graph::print_graph(string name,
																		 nodes_container<Q> nodes,
																		 edges_container<Q> edges,
																		 ostream &os) const {
			os << "digraph " << name << " {" << endl;
			for (const auto & n : nodes) {
				os << "  "
					<< (string)n
					<< "[ label=\""
					<< (string)n
					<< "\\n("
					<< get_left_ends(n) << ", "
					<< get_right_ends(n) 
					<< ")\", style=filled, fillcolor="
					<< ((get_left_ends(n) + get_right_ends(n)) ? "grey" : "white")
					<< ", shape="
					<< (can_have_duplex_edges(n) ? "diamond" : "ellipse")
					<<" ];" << endl;
			}
			for (const auto & e : edges) {
				node ln = left_node(e);
				node rn = right_node(e);
				os << "  "
					<< (string)ln << " -> "
					<< (string)rn << "[ label=\"("
					<< (string)e << ", "
					<< get_occurences(e)
					<< ")\", tailport="
					<< (is_left_edge(ln, e) ? "w" : is_right_edge(ln, e) ? "e" : "s")
					<< ", headport="
					<< (is_left_edge(rn, e) ? "w" : is_right_edge(rn, e) ? "e" : "s")
					<<" ];" << endl;
			}
			os << "}" << endl;
		}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x388, %rsp            # imm = 0x388
movq %rcx, 0x18(%rsp)
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
leaq 0xa690(%rip), %rsi      # 0x11820
movq %r8, 0x20(%rsp)
movq %r8, %rdi
callq 0x2200
movq %rax, %rdi
movq %r14, %rsi
callq 0x21e0
leaq 0xa67a(%rip), %rsi      # 0x11829
movq %rax, %rdi
callq 0x2200
movq %rax, %rdi
callq 0x20b0
leaq 0xc8(%rsp), %rdi
movq %rbx, %rsi
callq 0x98b2
leaq 0x228(%rsp), %rdi
movq %rbx, %rsi
callq 0x9912
leaq 0x30(%r15), %rax
movq %rax, 0x8(%rsp)
movq %r15, 0x10(%rsp)
leaq 0x58(%r15), %r13
leaq 0xa8(%rsp), %r12
movq 0x100(%rsp), %rax
cmpq 0xe0(%rsp), %rax
jne 0x7221
movq 0x240(%rsp), %rcx
cmpq %rcx, 0x260(%rsp)
je 0x73ca
cmpq 0x108(%rsp), %rax
jne 0x723f
movq 0x118(%rsp), %rax
movq -0x8(%rax), %rax
movl $0x1e0, %ecx            # imm = 0x1E0
addq %rcx, %rax
movl -0x28(%rax), %ebx
movq -0x20(%rax), %r14
movl %ebx, 0x38(%rsp)
movq %r14, 0x40(%rsp)
movq 0x20(%rsp), %rdi
leaq 0xa5d1(%rip), %rsi      # 0x1182c
callq 0x2200
movq %rax, %r15
leaq 0x88(%rsp), %rbp
movq %rbp, %rdi
leaq 0x38(%rsp), %rsi
callq 0x2758
movq %r15, %rdi
movq %rbp, %rsi
callq 0x21e0
movq %rax, %rdi
leaq 0xa5a2(%rip), %rsi      # 0x1182f
callq 0x2200
movq %rax, %r15
movq %r12, %rbp
movq %r12, %rdi
leaq 0x38(%rsp), %rsi
callq 0x2758
movq %r15, %rdi
movq %rbp, %rsi
callq 0x21e0
movq %rax, %rdi
leaq 0xa57f(%rip), %rsi      # 0x11839
callq 0x2200
movq %rax, %r15
movq 0x8(%rsp), %rdi
movl %ebx, %esi
movq %r14, %rdx
callq 0x7dcc
movq %r15, %rdi
movq %rax, %rsi
callq 0x2130
movq %rax, %rdi
leaq 0xa557(%rip), %rsi      # 0x1183d
callq 0x2200
movq %rax, %r15
movq %r13, %rdi
movl %ebx, %esi
movq %r14, %rdx
callq 0x7dcc
movq %r15, %rdi
movq %rax, %rsi
callq 0x2130
movq %rax, %rdi
leaq 0xa530(%rip), %rsi      # 0x11840
callq 0x2200
movq %rax, %r15
movq 0x8(%rsp), %rdi
movl %ebx, %esi
movq %r14, %rdx
callq 0x7dcc
movq %rax, %rbp
movq %r13, %rdi
movl %ebx, %esi
movq %r14, %rdx
callq 0x7dcc
addq %rax, %rbp
leaq 0xa51c(%rip), %rsi      # 0x1185d
leaq 0xa51a(%rip), %rax      # 0x11862
cmoveq %rax, %rsi
movq %r15, %rdi
callq 0x2200
movq %rax, %rdi
leaq 0xa50a(%rip), %rsi      # 0x11868
callq 0x2200
movq %rax, %r15
movl %ebx, %edi
movq %r14, %rsi
callq 0x2ee0
testb %al, %al
leaq 0xa500(%rip), %rsi      # 0x11879
leaq 0xa4f1(%rip), %rax      # 0x11871
cmovneq %rax, %rsi
movq %r15, %rdi
callq 0x2200
movq %rax, %rdi
leaq 0xa4eb(%rip), %rsi      # 0x11881
callq 0x2200
movq %rax, %rdi
callq 0x20b0
movq %r12, %rdi
callq 0x20a0
leaq 0x88(%rsp), %rdi
callq 0x20a0
leaq 0xc8(%rsp), %rdi
callq 0x999e
jmp 0x71f9
leaq 0x228(%rsp), %rdi
callq 0x9b04
leaq 0xc8(%rsp), %rdi
callq 0x9b04
leaq 0xc8(%rsp), %r14
movq %r14, %rdi
movq 0x18(%rsp), %rbx
movq %rbx, %rsi
callq 0x9632
leaq 0x228(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x9692
movl $0x130, %eax            # imm = 0x130
leaq (%r14,%rax), %rcx
movq %rcx, 0x30(%rsp)
addq %rax, %r15
movq 0x10(%rsp), %rcx
addq $0x8, %rcx
movq %rcx, 0x10(%rsp)
movq %r15, 0x28(%rsp)
movq 0x220(%rsp), %rax
cmpq 0x30(%rsp), %rax
jne 0x7450
cmpq %r15, 0x380(%rsp)
je 0x766d
movl 0x20(%rax), %r14d
movq 0x28(%rax), %r13
movl %r14d, 0x78(%rsp)
movq %r13, 0x80(%rsp)
movl %r14d, %edi
movq %r13, %rsi
callq 0x3f6b
movl %eax, %r15d
movq %rdx, %r12
movl %eax, 0x68(%rsp)
movq %rdx, 0x70(%rsp)
movl %r14d, %edi
movq %r13, %rsi
callq 0x3f7f
movl %eax, 0x8(%rsp)
movl %eax, 0x58(%rsp)
movq %rdx, 0x18(%rsp)
movq %rdx, 0x60(%rsp)
movq 0x20(%rsp), %rdi
leaq 0xa384(%rip), %rsi      # 0x1182c
callq 0x2200
movq %rax, %rbx
leaq 0x88(%rsp), %rbp
movq %rbp, %rdi
leaq 0x68(%rsp), %rsi
callq 0x2758
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x21e0
movq %rax, %rdi
leaq 0xa3ab(%rip), %rsi      # 0x11885
callq 0x2200
movq %rax, %rbx
leaq 0xa8(%rsp), %rbp
movq %rbp, %rdi
leaq 0x58(%rsp), %rsi
callq 0x2758
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x21e0
movq %rax, %rdi
leaq 0xa37e(%rip), %rsi      # 0x1188a
callq 0x2200
movq %rax, %rbx
leaq 0x38(%rsp), %rbp
movq %rbp, %rdi
leaq 0x78(%rsp), %rsi
callq 0x2758
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x21e0
movq %rax, %rdi
leaq 0xa302(%rip), %rsi      # 0x1183d
callq 0x2200
movq %rax, %rbx
movq 0x10(%rsp), %rdi
movl %r14d, %esi
movq %r13, %rdx
callq 0x7d76
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2130
movq %rax, %rdi
leaq 0xa32d(%rip), %rsi      # 0x11895
callq 0x2200
movq %rax, %rbx
movl %r15d, %edi
movq %r12, %rsi
movl %r14d, %edx
movq %r13, %rcx
callq 0x412d
leaq 0xa31b(%rip), %rsi      # 0x118a3
testb %al, %al
jne 0x75b1
movl %r15d, %edi
movq %r12, %rsi
movl %r14d, %edx
movq %r13, %rcx
callq 0x41b8
testb %al, %al
leaq 0xa243(%rip), %rsi      # 0x117e9
leaq 0xa159(%rip), %rax      # 0x11706
cmovneq %rax, %rsi
movq %rbx, %rdi
callq 0x2200
movq %rax, %rdi
leaq 0xa2e2(%rip), %rsi      # 0x118a5
callq 0x2200
movq %rax, %rbx
movl 0x8(%rsp), %ebp
movl %ebp, %edi
movq 0x18(%rsp), %r15
movq %r15, %rsi
movl %r14d, %edx
movq %r13, %rcx
callq 0x412d
leaq 0xa2b8(%rip), %rsi      # 0x118a3
testb %al, %al
jne 0x7613
movl %ebp, %edi
movq %r15, %rsi
movl %r14d, %edx
movq %r13, %rcx
callq 0x41b8
testb %al, %al
leaq 0xa1e1(%rip), %rsi      # 0x117e9
leaq 0xa0f7(%rip), %rax      # 0x11706
cmovneq %rax, %rsi
movq %rbx, %rdi
callq 0x2200
movq %rax, %rdi
leaq 0xa25c(%rip), %rsi      # 0x11881
callq 0x2200
movq %rax, %rdi
callq 0x20b0
leaq 0x38(%rsp), %rdi
callq 0x20a0
leaq 0xa8(%rsp), %rdi
callq 0x20a0
leaq 0x88(%rsp), %rdi
callq 0x20a0
leaq 0xc8(%rsp), %rdi
callq 0x96fe
movq 0x28(%rsp), %r15
jmp 0x7433
leaq 0x228(%rsp), %rdi
callq 0x9888
leaq 0xc8(%rsp), %rdi
callq 0x9888
leaq 0xa223(%rip), %rsi      # 0x118b1
movq 0x20(%rsp), %rdi
callq 0x2200
movq %rax, %rdi
callq 0x20b0
addq $0x388, %rsp            # imm = 0x388
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x771a
movq %rax, %rbx
jmp 0x7753
jmp 0x76c3
jmp 0x76c3
movq %rax, %rbx
jmp 0x770d
jmp 0x76d7
jmp 0x76dc
jmp 0x76d2
jmp 0x76d2
jmp 0x76e1
movq %rax, %rbx
jmp 0x7746
movq %rax, %rbx
jmp 0x7700
movq %rax, %rbx
jmp 0x76f3
movq %rax, %rbx
jmp 0x7739
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0x20a0
leaq 0xa8(%rsp), %rdi
callq 0x20a0
leaq 0x88(%rsp), %rdi
callq 0x20a0
leaq 0x228(%rsp), %rdi
callq 0x9888
leaq 0xc8(%rsp), %rdi
callq 0x9888
jmp 0x7760
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0x20a0
leaq 0x88(%rsp), %rdi
callq 0x20a0
leaq 0x228(%rsp), %rdi
callq 0x9b04
leaq 0xc8(%rsp), %rdi
callq 0x9b04
movq %rbx, %rdi
callq 0x23b0