// File: /workspace/github_cpp_makefile_star2_O2/volodymyr-kryvoshapov[P]arduino-lcd-menu/src/main.cpp
// Function: main
int main() {
	menu.addRootMenu("root menu")

	.addNode("node 1")
		.addChild("child 1.1")
		.addChild("child 1.2")
		.addChild("child 1.3")
	.done()

	.addNode("node 2")
		.addChild("child 2.1")

		.addNode("node 2.2")
			.addChild("child 2.2.1")
			.addChild("child 2.2.2")
			.addChild("child 2.2.3")
		.done()

		.addChild("child 2.3")

		.addNode("node 2.4")
			.addChild("child 2.4.1")
			.addChild("child 2.4.2")
			.addChild("child 2.4.3")
		.done()

		.addChild("child 2.5")
	.done()

	.addChild("child 3")
	.addChild("child 4");

//	cout << "sizeof(menu): " << sizeof( menu.getMenu() ) << endl;
//	cout << "sizeof(children): " << sizeof( menu.getMenu().getChildren() ) << endl;
//	cout << "menuNodeNum: "<< menu.getMenu().getChildrenNum() << endl;
//	cout << "menuNodeNum: "<< menu.getMenu().getChildren()[1]->getChildrenNum() << endl;

	std::cout << "Hi Man! Welcome to the show!" << endl;

	return 0;
}

// Assembly:
pushq %rbx
subq $0x280, %rsp            # imm = 0x280
leaq 0xcf7(%rip), %rsi       # 0x2012
leaq 0x260(%rsp), %rbx
leaq 0x1f(%rsp), %rdx
movq %rbx, %rdi
callq 0x192a
leaq 0x2d99(%rip), %rdi      # 0x40d0
movq %rbx, %rsi
callq 0x12c2
movq %rax, %rbx
leaq 0xcd3(%rip), %rsi       # 0x201c
leaq 0x240(%rsp), %rdi
leaq 0x1e(%rsp), %rdx
callq 0x192a
leaq 0x240(%rsp), %rsi
movq %rbx, %rdi
callq 0x1a94
movq %rax, %rbx
leaq 0xcae(%rip), %rsi       # 0x2023
leaq 0x220(%rsp), %rdi
leaq 0x1d(%rsp), %rdx
callq 0x192a
leaq 0x220(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ae4
movq %rax, %rbx
leaq 0xc8c(%rip), %rsi       # 0x202d
leaq 0x200(%rsp), %rdi
leaq 0x1c(%rsp), %rdx
callq 0x192a
leaq 0x200(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ae4
movq %rax, %rbx
leaq 0xc6a(%rip), %rsi       # 0x2037
leaq 0x1e0(%rsp), %rdi
leaq 0x1b(%rsp), %rdx
callq 0x192a
leaq 0x1e0(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ae4
movq %rax, %rdi
callq 0x1b2e
movq %rax, %rbx
leaq 0xc40(%rip), %rsi       # 0x2041
leaq 0x1c0(%rsp), %rdi
leaq 0x1a(%rsp), %rdx
callq 0x192a
leaq 0x1c0(%rsp), %rsi
movq %rbx, %rdi
callq 0x1a94
movq %rax, %rbx
leaq 0xc1b(%rip), %rsi       # 0x2048
leaq 0x1a0(%rsp), %rdi
leaq 0x19(%rsp), %rdx
callq 0x192a
leaq 0x1a0(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ae4
movq %rax, %rbx
leaq 0xbf9(%rip), %rsi       # 0x2052
leaq 0x180(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x192a
leaq 0x180(%rsp), %rsi
movq %rbx, %rdi
callq 0x1a94
movq %rax, %rbx
leaq 0xbd6(%rip), %rsi       # 0x205b
leaq 0x160(%rsp), %rdi
leaq 0x17(%rsp), %rdx
callq 0x192a
leaq 0x160(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ae4
movq %rax, %rbx
leaq 0xbb6(%rip), %rsi       # 0x2067
leaq 0x140(%rsp), %rdi
leaq 0x16(%rsp), %rdx
callq 0x192a
leaq 0x140(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ae4
movq %rax, %rbx
leaq 0xb96(%rip), %rsi       # 0x2073
leaq 0x120(%rsp), %rdi
leaq 0x15(%rsp), %rdx
callq 0x192a
leaq 0x120(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ae4
movq %rax, %rdi
callq 0x1b2e
movq %rax, %rbx
leaq 0xb6e(%rip), %rsi       # 0x207f
leaq 0x100(%rsp), %rdi
leaq 0x14(%rsp), %rdx
callq 0x192a
leaq 0x100(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ae4
movq %rax, %rbx
leaq 0xb4c(%rip), %rsi       # 0x2089
leaq 0xe0(%rsp), %rdi
leaq 0x13(%rsp), %rdx
callq 0x192a
leaq 0xe0(%rsp), %rsi
movq %rbx, %rdi
callq 0x1a94
movq %rax, %rbx
leaq 0xb29(%rip), %rsi       # 0x2092
leaq 0xc0(%rsp), %rdi
leaq 0x12(%rsp), %rdx
callq 0x192a
leaq 0xc0(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ae4
movq %rax, %rbx
leaq 0xb09(%rip), %rsi       # 0x209e
leaq 0xa0(%rsp), %rdi
leaq 0x11(%rsp), %rdx
callq 0x192a
leaq 0xa0(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ae4
movq %rax, %rbx
leaq 0xae9(%rip), %rsi       # 0x20aa
leaq 0x80(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x192a
leaq 0x80(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ae4
movq %rax, %rdi
callq 0x1b2e
movq %rax, %rbx
leaq 0xac1(%rip), %rsi       # 0x20b6
leaq 0x60(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x192a
leaq 0x60(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ae4
movq %rax, %rdi
callq 0x1b2e
movq %rax, %rbx
leaq 0xa9d(%rip), %rsi       # 0x20c0
leaq 0x40(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x192a
leaq 0x40(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ae4
movq %rax, %rbx
leaq 0xa7f(%rip), %rsi       # 0x20c8
leaq 0x20(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x192a
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ae4
leaq 0x20(%rsp), %rdi
callq 0x1070
leaq 0x40(%rsp), %rdi
callq 0x1070
leaq 0x60(%rsp), %rdi
callq 0x1070
leaq 0x80(%rsp), %rdi
callq 0x1070
leaq 0xa0(%rsp), %rdi
callq 0x1070
leaq 0xc0(%rsp), %rdi
callq 0x1070
leaq 0xe0(%rsp), %rdi
callq 0x1070
leaq 0x100(%rsp), %rdi
callq 0x1070
leaq 0x120(%rsp), %rdi
callq 0x1070
leaq 0x140(%rsp), %rdi
callq 0x1070
leaq 0x160(%rsp), %rdi
callq 0x1070
leaq 0x180(%rsp), %rdi
callq 0x1070
leaq 0x1a0(%rsp), %rdi
callq 0x1070
leaq 0x1c0(%rsp), %rdi
callq 0x1070
leaq 0x1e0(%rsp), %rdi
callq 0x1070
leaq 0x200(%rsp), %rdi
callq 0x1070
leaq 0x220(%rsp), %rdi
callq 0x1070
leaq 0x240(%rsp), %rdi
callq 0x1070
leaq 0x260(%rsp), %rdi
callq 0x1070
movq 0x287e(%rip), %rdi      # 0x3fd8
leaq 0x96f(%rip), %rsi       # 0x20d0
callq 0x10e0
movq %rax, %rdi
callq 0x1080
xorl %eax, %eax
addq $0x280, %rsp            # imm = 0x280
popq %rbx
retq
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x1070
jmp 0x178d
jmp 0x178a
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x1070
jmp 0x1835
jmp 0x1832
jmp 0x1841
jmp 0x17a8
movq %rax, %rbx
jmp 0x1851
jmp 0x17b2
movq %rax, %rbx
jmp 0x185e
jmp 0x17bc
movq %rax, %rbx
jmp 0x186b
jmp 0x17c6
movq %rax, %rbx
jmp 0x1878
jmp 0x191c
jmp 0x17d5
movq %rax, %rbx
jmp 0x1892
jmp 0x17df
movq %rax, %rbx
jmp 0x189f
jmp 0x17e9
movq %rax, %rbx
jmp 0x18ac
jmp 0x17f3
movq %rax, %rbx
jmp 0x18b9
jmp 0x17fd
movq %rax, %rbx
jmp 0x18c6
jmp 0x1924
jmp 0x180c
movq %rax, %rbx
jmp 0x18e0
jmp 0x1816
movq %rax, %rbx
jmp 0x18ed
jmp 0x1820
movq %rax, %rbx
jmp 0x18fa
jmp 0x182a
movq %rax, %rbx
jmp 0x1907
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x1070
jmp 0x1844
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x1070
leaq 0xa0(%rsp), %rdi
callq 0x1070
leaq 0xc0(%rsp), %rdi
callq 0x1070
leaq 0xe0(%rsp), %rdi
callq 0x1070
leaq 0x100(%rsp), %rdi
callq 0x1070
leaq 0x120(%rsp), %rdi
callq 0x1070
leaq 0x140(%rsp), %rdi
callq 0x1070
leaq 0x160(%rsp), %rdi
callq 0x1070
leaq 0x180(%rsp), %rdi
callq 0x1070
leaq 0x1a0(%rsp), %rdi
callq 0x1070
leaq 0x1c0(%rsp), %rdi
callq 0x1070
leaq 0x1e0(%rsp), %rdi
callq 0x1070
leaq 0x200(%rsp), %rdi
callq 0x1070
leaq 0x220(%rsp), %rdi
callq 0x1070
leaq 0x240(%rsp), %rdi
callq 0x1070
leaq 0x260(%rsp), %rdi
callq 0x1070
movq %rbx, %rdi
callq 0x1130
movq %rax, %rbx
jmp 0x1885
movq %rax, %rbx
jmp 0x18d3
nop