Executable and Linkable Format: GraphViz block diagram (.dot) source

Application

SVR4 ABI and up, many *nix systems

KS implementation details

License: CC0-1.0
Minimal Kaitai Struct required: 0.9

References

This page hosts a formal specification of Executable and Linkable Format using Kaitai Struct. This specification can be automatically translated into a variety of programming languages to get a parsing library.

GraphViz block diagram source

elf.dot

digraph {
	rankdir=LR;
	node [shape=plaintext];
	subgraph cluster__elf {
		label="Elf";
		graph[style=dotted];

		elf__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
			<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
			<TR><TD PORT="magic_pos">0</TD><TD PORT="magic_size">4</TD><TD></TD><TD PORT="magic_type">magic</TD></TR>
			<TR><TD PORT="bits_pos">4</TD><TD PORT="bits_size">1</TD><TD>u1→Bits</TD><TD PORT="bits_type">bits</TD></TR>
			<TR><TD PORT="endian_pos">5</TD><TD PORT="endian_size">1</TD><TD>u1→Endian</TD><TD PORT="endian_type">endian</TD></TR>
			<TR><TD PORT="ei_version_pos">6</TD><TD PORT="ei_version_size">1</TD><TD>u1</TD><TD PORT="ei_version_type">ei_version</TD></TR>
			<TR><TD PORT="abi_pos">7</TD><TD PORT="abi_size">1</TD><TD>u1→OsAbi</TD><TD PORT="abi_type">abi</TD></TR>
			<TR><TD PORT="abi_version_pos">8</TD><TD PORT="abi_version_size">1</TD><TD>u1</TD><TD PORT="abi_version_type">abi_version</TD></TR>
			<TR><TD PORT="pad_pos">9</TD><TD PORT="pad_size">7</TD><TD></TD><TD PORT="pad_type">pad</TD></TR>
			<TR><TD PORT="header_pos">16</TD><TD PORT="header_size">...</TD><TD>EndianElf</TD><TD PORT="header_type">header</TD></TR>
		</TABLE>>];
		elf__inst__sh_idx_lo_os [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
			<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
			<TR><TD>sh_idx_lo_os</TD><TD>65312</TD></TR>
		</TABLE>>];
		elf__inst__sh_idx_lo_reserved [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
			<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
			<TR><TD>sh_idx_lo_reserved</TD><TD>65280</TD></TR>
		</TABLE>>];
		elf__inst__sh_idx_hi_proc [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
			<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
			<TR><TD>sh_idx_hi_proc</TD><TD>65311</TD></TR>
		</TABLE>>];
		elf__inst__sh_idx_lo_proc [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
			<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
			<TR><TD>sh_idx_lo_proc</TD><TD>65280</TD></TR>
		</TABLE>>];
		elf__inst__sh_idx_hi_os [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
			<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
			<TR><TD>sh_idx_hi_os</TD><TD>65343</TD></TR>
		</TABLE>>];
		elf__inst__sh_idx_hi_reserved [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
			<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
			<TR><TD>sh_idx_hi_reserved</TD><TD>65535</TD></TR>
		</TABLE>>];
		subgraph cluster__phdr_type_flags {
			label="Elf::PhdrTypeFlags";
			graph[style=dotted];

			phdr_type_flags__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
			</TABLE>>];
			phdr_type_flags__inst__read [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>read</TD><TD>(value &amp; 4) != 0</TD></TR>
			</TABLE>>];
			phdr_type_flags__inst__write [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>write</TD><TD>(value &amp; 2) != 0</TD></TR>
			</TABLE>>];
			phdr_type_flags__inst__execute [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>execute</TD><TD>(value &amp; 1) != 0</TD></TR>
			</TABLE>>];
			phdr_type_flags__inst__mask_proc [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>mask_proc</TD><TD>(value &amp; 4026531840) != 0</TD></TR>
			</TABLE>>];
		}
		subgraph cluster__section_header_flags {
			label="Elf::SectionHeaderFlags";
			graph[style=dotted];

			section_header_flags__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
			</TABLE>>];
			section_header_flags__inst__merge [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>merge</TD><TD>(value &amp; 16) != 0</TD></TR>
			</TABLE>>];
			section_header_flags__inst__mask_os [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>mask_os</TD><TD>(value &amp; 267386880) != 0</TD></TR>
			</TABLE>>];
			section_header_flags__inst__exclude [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>exclude</TD><TD>(value &amp; 134217728) != 0</TD></TR>
			</TABLE>>];
			section_header_flags__inst__mask_proc [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>mask_proc</TD><TD>(value &amp; 4026531840) != 0</TD></TR>
			</TABLE>>];
			section_header_flags__inst__strings [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>strings</TD><TD>(value &amp; 32) != 0</TD></TR>
			</TABLE>>];
			section_header_flags__inst__os_non_conforming [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>os_non_conforming</TD><TD>(value &amp; 256) != 0</TD></TR>
			</TABLE>>];
			section_header_flags__inst__alloc [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>alloc</TD><TD>(value &amp; 2) != 0</TD></TR>
			</TABLE>>];
			section_header_flags__inst__exec_instr [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>exec_instr</TD><TD>(value &amp; 4) != 0</TD></TR>
			</TABLE>>];
			section_header_flags__inst__info_link [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>info_link</TD><TD>(value &amp; 64) != 0</TD></TR>
			</TABLE>>];
			section_header_flags__inst__write [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>write</TD><TD>(value &amp; 1) != 0</TD></TR>
			</TABLE>>];
			section_header_flags__inst__link_order [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>link_order</TD><TD>(value &amp; 128) != 0</TD></TR>
			</TABLE>>];
			section_header_flags__inst__ordered [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>ordered</TD><TD>(value &amp; 67108864) != 0</TD></TR>
			</TABLE>>];
			section_header_flags__inst__tls [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>tls</TD><TD>(value &amp; 1024) != 0</TD></TR>
			</TABLE>>];
			section_header_flags__inst__group [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>group</TD><TD>(value &amp; 512) != 0</TD></TR>
			</TABLE>>];
		}
		subgraph cluster__dt_flag_1_values {
			label="Elf::DtFlag1Values";
			graph[style=dotted];

			dt_flag_1_values__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__singleton [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>singleton</TD><TD>(value &amp; 33554432) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__ignmuldef [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>ignmuldef</TD><TD>(value &amp; 262144) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__loadfltr [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>loadfltr</TD><TD>(value &amp; 16) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__initfirst [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>initfirst</TD><TD>(value &amp; 32) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__symintpose [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>symintpose</TD><TD>(value &amp; 8388608) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__noreloc [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>noreloc</TD><TD>(value &amp; 4194304) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__confalt [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>confalt</TD><TD>(value &amp; 8192) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__dispreldne [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>dispreldne</TD><TD>(value &amp; 32768) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__rtld_global [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>rtld_global</TD><TD>(value &amp; 2) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__nodelete [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>nodelete</TD><TD>(value &amp; 8) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__trans [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>trans</TD><TD>(value &amp; 512) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__origin [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>origin</TD><TD>(value &amp; 128) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__now [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>now</TD><TD>(value &amp; 1) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__nohdr [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>nohdr</TD><TD>(value &amp; 1048576) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__endfiltee [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>endfiltee</TD><TD>(value &amp; 16384) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__nodirect [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>nodirect</TD><TD>(value &amp; 131072) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__globaudit [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>globaudit</TD><TD>(value &amp; 16777216) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__noksyms [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>noksyms</TD><TD>(value &amp; 524288) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__interpose [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>interpose</TD><TD>(value &amp; 1024) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__nodump [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>nodump</TD><TD>(value &amp; 4096) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__disprelpnd [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>disprelpnd</TD><TD>(value &amp; 65536) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__noopen [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>noopen</TD><TD>(value &amp; 64) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__stub [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>stub</TD><TD>(value &amp; 67108864) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__direct [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>direct</TD><TD>(value &amp; 256) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__edited [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>edited</TD><TD>(value &amp; 2097152) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__group [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>group</TD><TD>(value &amp; 4) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__pie [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>pie</TD><TD>(value &amp; 134217728) != 0</TD></TR>
			</TABLE>>];
			dt_flag_1_values__inst__nodeflib [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
				<TR><TD>nodeflib</TD><TD>(value &amp; 2048) != 0</TD></TR>
			</TABLE>>];
		}
		subgraph cluster__endian_elf {
			label="Elf::EndianElf";
			graph[style=dotted];

			endian_elf__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="e_type_pos">0</TD><TD PORT="e_type_size">2</TD><TD>u2→ObjType</TD><TD PORT="e_type_type">e_type</TD></TR>
				<TR><TD PORT="machine_pos">2</TD><TD PORT="machine_size">2</TD><TD>u2→Machine</TD><TD PORT="machine_type">machine</TD></TR>
				<TR><TD PORT="e_version_pos">4</TD><TD PORT="e_version_size">4</TD><TD>u4</TD><TD PORT="e_version_type">e_version</TD></TR>
				<TR><TD PORT="entry_point_pos">8</TD><TD PORT="entry_point_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="entry_point_type">entry_point</TD></TR>
				<TR><TD PORT="program_header_offset_pos">...</TD><TD PORT="program_header_offset_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="program_header_offset_type">program_header_offset</TD></TR>
				<TR><TD PORT="section_header_offset_pos">...</TD><TD PORT="section_header_offset_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="section_header_offset_type">section_header_offset</TD></TR>
				<TR><TD PORT="flags_pos">...</TD><TD PORT="flags_size">4</TD><TD></TD><TD PORT="flags_type">flags</TD></TR>
				<TR><TD PORT="e_ehsize_pos">...</TD><TD PORT="e_ehsize_size">2</TD><TD>u2</TD><TD PORT="e_ehsize_type">e_ehsize</TD></TR>
				<TR><TD PORT="program_header_entry_size_pos">...</TD><TD PORT="program_header_entry_size_size">2</TD><TD>u2</TD><TD PORT="program_header_entry_size_type">program_header_entry_size</TD></TR>
				<TR><TD PORT="qty_program_header_pos">...</TD><TD PORT="qty_program_header_size">2</TD><TD>u2</TD><TD PORT="qty_program_header_type">qty_program_header</TD></TR>
				<TR><TD PORT="section_header_entry_size_pos">...</TD><TD PORT="section_header_entry_size_size">2</TD><TD>u2</TD><TD PORT="section_header_entry_size_type">section_header_entry_size</TD></TR>
				<TR><TD PORT="qty_section_header_pos">...</TD><TD PORT="qty_section_header_size">2</TD><TD>u2</TD><TD PORT="qty_section_header_type">qty_section_header</TD></TR>
				<TR><TD PORT="section_names_idx_pos">...</TD><TD PORT="section_names_idx_size">2</TD><TD>u2</TD><TD PORT="section_names_idx_type">section_names_idx</TD></TR>
			</TABLE>>];
			endian_elf__inst__program_headers [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="program_headers_pos">program_header_offset</TD><TD PORT="program_headers_size">program_header_entry_size</TD><TD>ProgramHeader</TD><TD PORT="program_headers_type">program_headers</TD></TR>
				<TR><TD COLSPAN="4" PORT="program_headers__repeat">repeat qty_program_header times</TD></TR>
			</TABLE>>];
			endian_elf__inst__section_headers [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="section_headers_pos">section_header_offset</TD><TD PORT="section_headers_size">section_header_entry_size</TD><TD>SectionHeader</TD><TD PORT="section_headers_type">section_headers</TD></TR>
				<TR><TD COLSPAN="4" PORT="section_headers__repeat">repeat qty_section_header times</TD></TR>
			</TABLE>>];
			endian_elf__inst__section_names [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="section_names_pos">section_headers[section_names_idx].ofs_body</TD><TD PORT="section_names_size">section_headers[section_names_idx].len_body</TD><TD>StringsStruct</TD><TD PORT="section_names_type">section_names</TD></TR>
			</TABLE>>];
endian_elf__seq_entry_point_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
endian_elf__seq_program_header_offset_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
endian_elf__seq_section_header_offset_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
			subgraph cluster__note_section {
				label="Elf::EndianElf::NoteSection";
				graph[style=dotted];

				note_section__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="entries_pos">0</TD><TD PORT="entries_size">...</TD><TD>NoteSectionEntry</TD><TD PORT="entries_type">entries</TD></TR>
					<TR><TD COLSPAN="4" PORT="entries__repeat">repeat to end of stream</TD></TR>
				</TABLE>>];
			}
			subgraph cluster__program_header {
				label="Elf::EndianElf::ProgramHeader";
				graph[style=dotted];

				program_header__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="type_pos">0</TD><TD PORT="type_size">4</TD><TD>u4→PhType</TD><TD PORT="type_type">type</TD></TR>
					<TR><TD PORT="flags64_pos">4</TD><TD PORT="flags64_size">4</TD><TD>u4</TD><TD PORT="flags64_type">flags64</TD></TR>
					<TR><TD PORT="offset_pos">8</TD><TD PORT="offset_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="offset_type">offset</TD></TR>
					<TR><TD PORT="vaddr_pos">...</TD><TD PORT="vaddr_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="vaddr_type">vaddr</TD></TR>
					<TR><TD PORT="paddr_pos">...</TD><TD PORT="paddr_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="paddr_type">paddr</TD></TR>
					<TR><TD PORT="filesz_pos">...</TD><TD PORT="filesz_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="filesz_type">filesz</TD></TR>
					<TR><TD PORT="memsz_pos">...</TD><TD PORT="memsz_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="memsz_type">memsz</TD></TR>
					<TR><TD PORT="flags32_pos">...</TD><TD PORT="flags32_size">4</TD><TD>u4</TD><TD PORT="flags32_type">flags32</TD></TR>
					<TR><TD PORT="align_pos">...</TD><TD PORT="align_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="align_type">align</TD></TR>
				</TABLE>>];
				program_header__inst__flags_obj [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="flags_obj_pos">...</TD><TD PORT="flags_obj_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="flags_obj_type">flags_obj</TD></TR>
				</TABLE>>];
program_header__seq_offset_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
program_header__seq_vaddr_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
program_header__seq_paddr_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
program_header__seq_filesz_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
program_header__seq_memsz_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
program_header__seq_align_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
program_header__inst__flags_obj_flags_obj_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:bits_b32</TD><TD PORT="case0">PhdrTypeFlags</TD></TR>
	<TR><TD>:bits_b64</TD><TD PORT="case1">PhdrTypeFlags</TD></TR>
</TABLE>>];
			}
			subgraph cluster__dynamic_section_entry {
				label="Elf::EndianElf::DynamicSectionEntry";
				graph[style=dotted];

				dynamic_section_entry__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="tag_pos">0</TD><TD PORT="tag_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="tag_type">tag</TD></TR>
					<TR><TD PORT="value_or_ptr_pos">...</TD><TD PORT="value_or_ptr_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="value_or_ptr_type">value_or_ptr</TD></TR>
				</TABLE>>];
				dynamic_section_entry__inst__tag_enum [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
					<TR><TD>tag_enum</TD><TD>Kaitai::Struct::Stream::resolve_enum(Elf::DYNAMIC_ARRAY_TAGS, tag)</TD></TR>
				</TABLE>>];
				dynamic_section_entry__inst__flag_1_values [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="flag_1_values_pos">...</TD><TD PORT="flag_1_values_size">0</TD><TD>DtFlag1Values</TD><TD PORT="flag_1_values_type">flag_1_values</TD></TR>
				</TABLE>>];
				dynamic_section_entry__inst__value_str [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="value_str_pos">value_or_ptr</TD><TD PORT="value_str_size">...</TD><TD>str(ASCII)</TD><TD PORT="value_str_type">value_str</TD></TR>
				</TABLE>>];
				dynamic_section_entry__inst__is_value_str [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
					<TR><TD>is_value_str</TD><TD> ((value_or_ptr != 0) &amp;&amp; ( ((tag_enum == :dynamic_array_tags_needed) || (tag_enum == :dynamic_array_tags_soname) || (tag_enum == :dynamic_array_tags_rpath) || (tag_enum == :dynamic_array_tags_runpath) || (tag_enum == :dynamic_array_tags_sunw_auxiliary) || (tag_enum == :dynamic_array_tags_sunw_filter) || (tag_enum == :dynamic_array_tags_auxiliary) || (tag_enum == :dynamic_array_tags_filter) || (tag_enum == :dynamic_array_tags_config) || (tag_enum == :dynamic_array_tags_depaudit) || (tag_enum == :dynamic_array_tags_audit)) )) </TD></TR>
				</TABLE>>];
dynamic_section_entry__seq_tag_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
dynamic_section_entry__seq_value_or_ptr_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
			}
			subgraph cluster__section_header {
				label="Elf::EndianElf::SectionHeader";
				graph[style=dotted];

				section_header__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="ofs_name_pos">0</TD><TD PORT="ofs_name_size">4</TD><TD>u4</TD><TD PORT="ofs_name_type">ofs_name</TD></TR>
					<TR><TD PORT="type_pos">4</TD><TD PORT="type_size">4</TD><TD>u4→ShType</TD><TD PORT="type_type">type</TD></TR>
					<TR><TD PORT="flags_pos">8</TD><TD PORT="flags_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="flags_type">flags</TD></TR>
					<TR><TD PORT="addr_pos">...</TD><TD PORT="addr_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="addr_type">addr</TD></TR>
					<TR><TD PORT="ofs_body_pos">...</TD><TD PORT="ofs_body_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="ofs_body_type">ofs_body</TD></TR>
					<TR><TD PORT="len_body_pos">...</TD><TD PORT="len_body_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="len_body_type">len_body</TD></TR>
					<TR><TD PORT="linked_section_idx_pos">...</TD><TD PORT="linked_section_idx_size">4</TD><TD>u4</TD><TD PORT="linked_section_idx_type">linked_section_idx</TD></TR>
					<TR><TD PORT="info_pos">...</TD><TD PORT="info_size">4</TD><TD></TD><TD PORT="info_type">info</TD></TR>
					<TR><TD PORT="align_pos">...</TD><TD PORT="align_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="align_type">align</TD></TR>
					<TR><TD PORT="entry_size_pos">...</TD><TD PORT="entry_size_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="entry_size_type">entry_size</TD></TR>
				</TABLE>>];
				section_header__inst__body [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="body_pos">ofs_body</TD><TD PORT="body_size">...</TD><TD>switch (type)</TD><TD PORT="body_type">body</TD></TR>
				</TABLE>>];
				section_header__inst__linked_section [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
					<TR><TD>linked_section</TD><TD>_root.header.section_headers[linked_section_idx]</TD></TR>
				</TABLE>>];
				section_header__inst__name [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="name_pos">ofs_name</TD><TD PORT="name_size">...</TD><TD>str(ASCII)</TD><TD PORT="name_type">name</TD></TR>
				</TABLE>>];
				section_header__inst__flags_obj [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="flags_obj_pos">...</TD><TD PORT="flags_obj_size">0</TD><TD>SectionHeaderFlags</TD><TD PORT="flags_obj_type">flags_obj</TD></TR>
				</TABLE>>];
section_header__seq_flags_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
section_header__seq_addr_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
section_header__seq_ofs_body_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
section_header__seq_len_body_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
section_header__seq_align_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
section_header__seq_entry_size_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
section_header__inst__body_body_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:sh_type_rel</TD><TD PORT="case0">RelocationSection</TD></TR>
	<TR><TD>:sh_type_note</TD><TD PORT="case1">NoteSection</TD></TR>
	<TR><TD>:sh_type_symtab</TD><TD PORT="case2">DynsymSection</TD></TR>
	<TR><TD>:sh_type_strtab</TD><TD PORT="case3">StringsStruct</TD></TR>
	<TR><TD>:sh_type_dynamic</TD><TD PORT="case4">DynamicSection</TD></TR>
	<TR><TD>:sh_type_dynsym</TD><TD PORT="case5">DynsymSection</TD></TR>
	<TR><TD>:sh_type_rela</TD><TD PORT="case6">RelocationSection</TD></TR>
</TABLE>>];
			}
			subgraph cluster__relocation_section {
				label="Elf::EndianElf::RelocationSection";
				graph[style=dotted];

				relocation_section__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="entries_pos">0</TD><TD PORT="entries_size">...</TD><TD>RelocationSectionEntry</TD><TD PORT="entries_type">entries</TD></TR>
					<TR><TD COLSPAN="4" PORT="entries__repeat">repeat to end of stream</TD></TR>
				</TABLE>>];
			}
			subgraph cluster__dynamic_section {
				label="Elf::EndianElf::DynamicSection";
				graph[style=dotted];

				dynamic_section__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="entries_pos">0</TD><TD PORT="entries_size">...</TD><TD>DynamicSectionEntry</TD><TD PORT="entries_type">entries</TD></TR>
					<TR><TD COLSPAN="4" PORT="entries__repeat">repeat to end of stream</TD></TR>
				</TABLE>>];
				dynamic_section__inst__is_string_table_linked [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
					<TR><TD>is_string_table_linked</TD><TD>_parent.linked_section.type == :sh_type_strtab</TD></TR>
				</TABLE>>];
			}
			subgraph cluster__dynsym_section {
				label="Elf::EndianElf::DynsymSection";
				graph[style=dotted];

				dynsym_section__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="entries_pos">0</TD><TD PORT="entries_size">32</TD><TD>DynsymSectionEntry</TD><TD PORT="entries_type">entries</TD></TR>
					<TR><TD COLSPAN="4" PORT="entries__repeat">repeat to end of stream</TD></TR>
				</TABLE>>];
				dynsym_section__inst__is_string_table_linked [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
					<TR><TD>is_string_table_linked</TD><TD>_parent.linked_section.type == :sh_type_strtab</TD></TR>
				</TABLE>>];
			}
			subgraph cluster__relocation_section_entry {
				label="Elf::EndianElf::RelocationSectionEntry";
				graph[style=dotted];

				relocation_section_entry__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="offset_pos">0</TD><TD PORT="offset_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="offset_type">offset</TD></TR>
					<TR><TD PORT="info_pos">...</TD><TD PORT="info_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="info_type">info</TD></TR>
					<TR><TD PORT="addend_pos">...</TD><TD PORT="addend_size">...</TD><TD>switch (_root.bits)</TD><TD PORT="addend_type">addend</TD></TR>
				</TABLE>>];
relocation_section_entry__seq_offset_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
relocation_section_entry__seq_info_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
relocation_section_entry__seq_addend_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
</TABLE>>];
			}
			subgraph cluster__dynsym_section_entry {
				label="Elf::EndianElf::DynsymSectionEntry";
				graph[style=dotted];

				dynsym_section_entry__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="ofs_name_pos">0</TD><TD PORT="ofs_name_size">4</TD><TD>u4</TD><TD PORT="ofs_name_type">ofs_name</TD></TR>
					<TR><TD PORT="value_b32_pos">4</TD><TD PORT="value_b32_size">4</TD><TD>u4</TD><TD PORT="value_b32_type">value_b32</TD></TR>
					<TR><TD PORT="size_b32_pos">8</TD><TD PORT="size_b32_size">4</TD><TD>u4</TD><TD PORT="size_b32_type">size_b32</TD></TR>
					<TR><TD PORT="bind_pos">12</TD><TD PORT="bind_size">4b</TD><TD>b4→SymbolBinding</TD><TD PORT="bind_type">bind</TD></TR>
					<TR><TD PORT="type_pos">12:4</TD><TD PORT="type_size">4b</TD><TD>b4→SymbolType</TD><TD PORT="type_type">type</TD></TR>
					<TR><TD PORT="other_pos">13</TD><TD PORT="other_size">1</TD><TD>u1</TD><TD PORT="other_type">other</TD></TR>
					<TR><TD PORT="sh_idx_pos">14</TD><TD PORT="sh_idx_size">2</TD><TD>u2</TD><TD PORT="sh_idx_type">sh_idx</TD></TR>
					<TR><TD PORT="value_b64_pos">16</TD><TD PORT="value_b64_size">8</TD><TD>u8</TD><TD PORT="value_b64_type">value_b64</TD></TR>
					<TR><TD PORT="size_b64_pos">24</TD><TD PORT="size_b64_size">8</TD><TD>u8</TD><TD PORT="size_b64_type">size_b64</TD></TR>
				</TABLE>>];
				dynsym_section_entry__inst__is_sh_idx_reserved [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
					<TR><TD>is_sh_idx_reserved</TD><TD> ((sh_idx &gt;= _root.sh_idx_lo_reserved) &amp;&amp; (sh_idx &lt;= _root.sh_idx_hi_reserved)) </TD></TR>
				</TABLE>>];
				dynsym_section_entry__inst__is_sh_idx_os [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
					<TR><TD>is_sh_idx_os</TD><TD> ((sh_idx &gt;= _root.sh_idx_lo_os) &amp;&amp; (sh_idx &lt;= _root.sh_idx_hi_os)) </TD></TR>
				</TABLE>>];
				dynsym_section_entry__inst__is_sh_idx_proc [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
					<TR><TD>is_sh_idx_proc</TD><TD> ((sh_idx &gt;= _root.sh_idx_lo_proc) &amp;&amp; (sh_idx &lt;= _root.sh_idx_hi_proc)) </TD></TR>
				</TABLE>>];
				dynsym_section_entry__inst__size [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
					<TR><TD>size</TD><TD>(_root.bits == :bits_b32 ? size_b32 : (_root.bits == :bits_b64 ? size_b64 : 0))</TD></TR>
				</TABLE>>];
				dynsym_section_entry__inst__visibility [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
					<TR><TD>visibility</TD><TD>Kaitai::Struct::Stream::resolve_enum(Elf::SYMBOL_VISIBILITY, (other &amp; 3))</TD></TR>
				</TABLE>>];
				dynsym_section_entry__inst__value [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
					<TR><TD>value</TD><TD>(_root.bits == :bits_b32 ? value_b32 : (_root.bits == :bits_b64 ? value_b64 : 0))</TD></TR>
				</TABLE>>];
				dynsym_section_entry__inst__name [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="name_pos">ofs_name</TD><TD PORT="name_size">...</TD><TD>str(ASCII)</TD><TD PORT="name_type">name</TD></TR>
				</TABLE>>];
				dynsym_section_entry__inst__sh_idx_special [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
					<TR><TD>sh_idx_special</TD><TD>Kaitai::Struct::Stream::resolve_enum(Elf::SECTION_HEADER_IDX_SPECIAL, sh_idx)</TD></TR>
				</TABLE>>];
			}
			subgraph cluster__note_section_entry {
				label="Elf::EndianElf::NoteSectionEntry";
				graph[style=dotted];

				note_section_entry__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="len_name_pos">0</TD><TD PORT="len_name_size">4</TD><TD>u4</TD><TD PORT="len_name_type">len_name</TD></TR>
					<TR><TD PORT="len_descriptor_pos">4</TD><TD PORT="len_descriptor_size">4</TD><TD>u4</TD><TD PORT="len_descriptor_type">len_descriptor</TD></TR>
					<TR><TD PORT="type_pos">8</TD><TD PORT="type_size">4</TD><TD>u4</TD><TD PORT="type_type">type</TD></TR>
					<TR><TD PORT="name_pos">12</TD><TD PORT="name_size">len_name</TD><TD></TD><TD PORT="name_type">name</TD></TR>
					<TR><TD PORT="name_padding_pos">...</TD><TD PORT="name_padding_size">(-(len_name) % 4)</TD><TD></TD><TD PORT="name_padding_type">name_padding</TD></TR>
					<TR><TD PORT="descriptor_pos">...</TD><TD PORT="descriptor_size">len_descriptor</TD><TD></TD><TD PORT="descriptor_type">descriptor</TD></TR>
					<TR><TD PORT="descriptor_padding_pos">...</TD><TD PORT="descriptor_padding_size">(-(len_descriptor) % 4)</TD><TD></TD><TD PORT="descriptor_padding_type">descriptor_padding</TD></TR>
				</TABLE>>];
			}
			subgraph cluster__strings_struct {
				label="Elf::EndianElf::StringsStruct";
				graph[style=dotted];

				strings_struct__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="entries_pos">0</TD><TD PORT="entries_size">...</TD><TD>str(ASCII)</TD><TD PORT="entries_type">entries</TD></TR>
					<TR><TD COLSPAN="4" PORT="entries__repeat">repeat to end of stream</TD></TR>
				</TABLE>>];
			}
		}
	}
	elf__seq:header_type -> endian_elf__seq [style=bold];
	phdr_type_flags__params:value_type -> phdr_type_flags__inst__read [color="#404040"];
	phdr_type_flags__params:value_type -> phdr_type_flags__inst__write [color="#404040"];
	phdr_type_flags__params:value_type -> phdr_type_flags__inst__execute [color="#404040"];
	phdr_type_flags__params:value_type -> phdr_type_flags__inst__mask_proc [color="#404040"];
	section_header_flags__params:value_type -> section_header_flags__inst__merge [color="#404040"];
	section_header_flags__params:value_type -> section_header_flags__inst__mask_os [color="#404040"];
	section_header_flags__params:value_type -> section_header_flags__inst__exclude [color="#404040"];
	section_header_flags__params:value_type -> section_header_flags__inst__mask_proc [color="#404040"];
	section_header_flags__params:value_type -> section_header_flags__inst__strings [color="#404040"];
	section_header_flags__params:value_type -> section_header_flags__inst__os_non_conforming [color="#404040"];
	section_header_flags__params:value_type -> section_header_flags__inst__alloc [color="#404040"];
	section_header_flags__params:value_type -> section_header_flags__inst__exec_instr [color="#404040"];
	section_header_flags__params:value_type -> section_header_flags__inst__info_link [color="#404040"];
	section_header_flags__params:value_type -> section_header_flags__inst__write [color="#404040"];
	section_header_flags__params:value_type -> section_header_flags__inst__link_order [color="#404040"];
	section_header_flags__params:value_type -> section_header_flags__inst__ordered [color="#404040"];
	section_header_flags__params:value_type -> section_header_flags__inst__tls [color="#404040"];
	section_header_flags__params:value_type -> section_header_flags__inst__group [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__singleton [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__ignmuldef [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__loadfltr [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__initfirst [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__symintpose [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__noreloc [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__confalt [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__dispreldne [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__rtld_global [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__nodelete [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__trans [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__origin [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__now [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__nohdr [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__endfiltee [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__nodirect [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__globaudit [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__noksyms [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__interpose [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__nodump [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__disprelpnd [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__noopen [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__stub [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__direct [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__edited [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__group [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__pie [color="#404040"];
	dt_flag_1_values__params:value_type -> dt_flag_1_values__inst__nodeflib [color="#404040"];
	endian_elf__seq:entry_point_type -> endian_elf__seq_entry_point_switch [style=bold];
	elf__seq:bits_type -> endian_elf__seq:entry_point_type [color="#404040"];
	endian_elf__seq:program_header_offset_type -> endian_elf__seq_program_header_offset_switch [style=bold];
	elf__seq:bits_type -> endian_elf__seq:program_header_offset_type [color="#404040"];
	endian_elf__seq:section_header_offset_type -> endian_elf__seq_section_header_offset_switch [style=bold];
	elf__seq:bits_type -> endian_elf__seq:section_header_offset_type [color="#404040"];
	endian_elf__seq:program_header_offset_type -> endian_elf__inst__program_headers:program_headers_pos [color="#404040"];
	endian_elf__seq:program_header_entry_size_type -> endian_elf__inst__program_headers:program_headers_size [color="#404040"];
	endian_elf__inst__program_headers:program_headers_type -> program_header__seq [style=bold];
	endian_elf__seq:qty_program_header_type -> endian_elf__inst__program_headers:program_headers__repeat [color="#404040"];
	endian_elf__seq:section_header_offset_type -> endian_elf__inst__section_headers:section_headers_pos [color="#404040"];
	endian_elf__seq:section_header_entry_size_type -> endian_elf__inst__section_headers:section_headers_size [color="#404040"];
	endian_elf__inst__section_headers:section_headers_type -> section_header__seq [style=bold];
	endian_elf__seq:qty_section_header_type -> endian_elf__inst__section_headers:section_headers__repeat [color="#404040"];
	section_header__seq:ofs_body_type -> endian_elf__inst__section_names:section_names_pos [color="#404040"];
	section_header__seq:len_body_type -> endian_elf__inst__section_names:section_names_size [color="#404040"];
	endian_elf__inst__section_names:section_names_type -> strings_struct__seq [style=bold];
	note_section__seq:entries_type -> note_section_entry__seq [style=bold];
	program_header__seq:offset_type -> program_header__seq_offset_switch [style=bold];
	elf__seq:bits_type -> program_header__seq:offset_type [color="#404040"];
	program_header__seq:vaddr_type -> program_header__seq_vaddr_switch [style=bold];
	elf__seq:bits_type -> program_header__seq:vaddr_type [color="#404040"];
	program_header__seq:paddr_type -> program_header__seq_paddr_switch [style=bold];
	elf__seq:bits_type -> program_header__seq:paddr_type [color="#404040"];
	program_header__seq:filesz_type -> program_header__seq_filesz_switch [style=bold];
	elf__seq:bits_type -> program_header__seq:filesz_type [color="#404040"];
	program_header__seq:memsz_type -> program_header__seq_memsz_switch [style=bold];
	elf__seq:bits_type -> program_header__seq:memsz_type [color="#404040"];
	program_header__seq:align_type -> program_header__seq_align_switch [style=bold];
	elf__seq:bits_type -> program_header__seq:align_type [color="#404040"];
	program_header__inst__flags_obj:flags_obj_type -> program_header__inst__flags_obj_flags_obj_switch [style=bold];
	program_header__inst__flags_obj_flags_obj_switch:case0 -> phdr_type_flags__seq [style=bold];
	program_header__inst__flags_obj_flags_obj_switch:case1 -> phdr_type_flags__seq [style=bold];
	elf__seq:bits_type -> program_header__inst__flags_obj:flags_obj_type [color="#404040"];
	dynamic_section_entry__seq:tag_type -> dynamic_section_entry__seq_tag_switch [style=bold];
	elf__seq:bits_type -> dynamic_section_entry__seq:tag_type [color="#404040"];
	dynamic_section_entry__seq:value_or_ptr_type -> dynamic_section_entry__seq_value_or_ptr_switch [style=bold];
	elf__seq:bits_type -> dynamic_section_entry__seq:value_or_ptr_type [color="#404040"];
	dynamic_section_entry__seq:tag_type -> dynamic_section_entry__inst__tag_enum [color="#404040"];
	dynamic_section_entry__inst__flag_1_values:flag_1_values_type -> dt_flag_1_values__seq [style=bold];
	dynamic_section_entry__seq:value_or_ptr_type -> dynamic_section_entry__inst__value_str:value_str_pos [color="#404040"];
	dynamic_section_entry__seq:value_or_ptr_type -> dynamic_section_entry__inst__is_value_str [color="#404040"];
	dynamic_section_entry__inst__tag_enum:tag_enum_type -> dynamic_section_entry__inst__is_value_str [color="#404040"];
	dynamic_section_entry__inst__tag_enum:tag_enum_type -> dynamic_section_entry__inst__is_value_str [color="#404040"];
	dynamic_section_entry__inst__tag_enum:tag_enum_type -> dynamic_section_entry__inst__is_value_str [color="#404040"];
	dynamic_section_entry__inst__tag_enum:tag_enum_type -> dynamic_section_entry__inst__is_value_str [color="#404040"];
	dynamic_section_entry__inst__tag_enum:tag_enum_type -> dynamic_section_entry__inst__is_value_str [color="#404040"];
	dynamic_section_entry__inst__tag_enum:tag_enum_type -> dynamic_section_entry__inst__is_value_str [color="#404040"];
	dynamic_section_entry__inst__tag_enum:tag_enum_type -> dynamic_section_entry__inst__is_value_str [color="#404040"];
	dynamic_section_entry__inst__tag_enum:tag_enum_type -> dynamic_section_entry__inst__is_value_str [color="#404040"];
	dynamic_section_entry__inst__tag_enum:tag_enum_type -> dynamic_section_entry__inst__is_value_str [color="#404040"];
	dynamic_section_entry__inst__tag_enum:tag_enum_type -> dynamic_section_entry__inst__is_value_str [color="#404040"];
	dynamic_section_entry__inst__tag_enum:tag_enum_type -> dynamic_section_entry__inst__is_value_str [color="#404040"];
	section_header__seq:flags_type -> section_header__seq_flags_switch [style=bold];
	elf__seq:bits_type -> section_header__seq:flags_type [color="#404040"];
	section_header__seq:addr_type -> section_header__seq_addr_switch [style=bold];
	elf__seq:bits_type -> section_header__seq:addr_type [color="#404040"];
	section_header__seq:ofs_body_type -> section_header__seq_ofs_body_switch [style=bold];
	elf__seq:bits_type -> section_header__seq:ofs_body_type [color="#404040"];
	section_header__seq:len_body_type -> section_header__seq_len_body_switch [style=bold];
	elf__seq:bits_type -> section_header__seq:len_body_type [color="#404040"];
	section_header__seq:align_type -> section_header__seq_align_switch [style=bold];
	elf__seq:bits_type -> section_header__seq:align_type [color="#404040"];
	section_header__seq:entry_size_type -> section_header__seq_entry_size_switch [style=bold];
	elf__seq:bits_type -> section_header__seq:entry_size_type [color="#404040"];
	section_header__seq:ofs_body_type -> section_header__inst__body:body_pos [color="#404040"];
	section_header__inst__body:body_type -> section_header__inst__body_body_switch [style=bold];
	section_header__inst__body_body_switch:case0 -> relocation_section__seq [style=bold];
	section_header__inst__body_body_switch:case1 -> note_section__seq [style=bold];
	section_header__inst__body_body_switch:case2 -> dynsym_section__seq [style=bold];
	section_header__inst__body_body_switch:case3 -> strings_struct__seq [style=bold];
	section_header__inst__body_body_switch:case4 -> dynamic_section__seq [style=bold];
	section_header__inst__body_body_switch:case5 -> dynsym_section__seq [style=bold];
	section_header__inst__body_body_switch:case6 -> relocation_section__seq [style=bold];
	section_header__seq:type_type -> section_header__inst__body:body_type [color="#404040"];
	endian_elf__inst__section_headers:section_headers_type -> section_header__inst__linked_section [color="#404040"];
	section_header__seq:linked_section_idx_type -> section_header__inst__linked_section [color="#404040"];
	section_header__seq:ofs_name_type -> section_header__inst__name:name_pos [color="#404040"];
	section_header__inst__flags_obj:flags_obj_type -> section_header_flags__seq [style=bold];
	relocation_section__seq:entries_type -> relocation_section_entry__seq [style=bold];
	dynamic_section__seq:entries_type -> dynamic_section_entry__seq [style=bold];
	section_header__seq:type_type -> dynamic_section__inst__is_string_table_linked [color="#404040"];
	dynsym_section__seq:entries_type -> dynsym_section_entry__seq [style=bold];
	section_header__seq:type_type -> dynsym_section__inst__is_string_table_linked [color="#404040"];
	relocation_section_entry__seq:offset_type -> relocation_section_entry__seq_offset_switch [style=bold];
	elf__seq:bits_type -> relocation_section_entry__seq:offset_type [color="#404040"];
	relocation_section_entry__seq:info_type -> relocation_section_entry__seq_info_switch [style=bold];
	elf__seq:bits_type -> relocation_section_entry__seq:info_type [color="#404040"];
	relocation_section_entry__seq:addend_type -> relocation_section_entry__seq_addend_switch [style=bold];
	elf__seq:bits_type -> relocation_section_entry__seq:addend_type [color="#404040"];
	dynsym_section_entry__seq:sh_idx_type -> dynsym_section_entry__inst__is_sh_idx_reserved [color="#404040"];
	elf__inst__sh_idx_lo_reserved:sh_idx_lo_reserved_type -> dynsym_section_entry__inst__is_sh_idx_reserved [color="#404040"];
	dynsym_section_entry__seq:sh_idx_type -> dynsym_section_entry__inst__is_sh_idx_reserved [color="#404040"];
	elf__inst__sh_idx_hi_reserved:sh_idx_hi_reserved_type -> dynsym_section_entry__inst__is_sh_idx_reserved [color="#404040"];
	dynsym_section_entry__seq:sh_idx_type -> dynsym_section_entry__inst__is_sh_idx_os [color="#404040"];
	elf__inst__sh_idx_lo_os:sh_idx_lo_os_type -> dynsym_section_entry__inst__is_sh_idx_os [color="#404040"];
	dynsym_section_entry__seq:sh_idx_type -> dynsym_section_entry__inst__is_sh_idx_os [color="#404040"];
	elf__inst__sh_idx_hi_os:sh_idx_hi_os_type -> dynsym_section_entry__inst__is_sh_idx_os [color="#404040"];
	dynsym_section_entry__seq:sh_idx_type -> dynsym_section_entry__inst__is_sh_idx_proc [color="#404040"];
	elf__inst__sh_idx_lo_proc:sh_idx_lo_proc_type -> dynsym_section_entry__inst__is_sh_idx_proc [color="#404040"];
	dynsym_section_entry__seq:sh_idx_type -> dynsym_section_entry__inst__is_sh_idx_proc [color="#404040"];
	elf__inst__sh_idx_hi_proc:sh_idx_hi_proc_type -> dynsym_section_entry__inst__is_sh_idx_proc [color="#404040"];
	elf__seq:bits_type -> dynsym_section_entry__inst__size [color="#404040"];
	dynsym_section_entry__seq:size_b32_type -> dynsym_section_entry__inst__size [color="#404040"];
	elf__seq:bits_type -> dynsym_section_entry__inst__size [color="#404040"];
	dynsym_section_entry__seq:size_b64_type -> dynsym_section_entry__inst__size [color="#404040"];
	dynsym_section_entry__seq:other_type -> dynsym_section_entry__inst__visibility [color="#404040"];
	elf__seq:bits_type -> dynsym_section_entry__inst__value [color="#404040"];
	dynsym_section_entry__seq:value_b32_type -> dynsym_section_entry__inst__value [color="#404040"];
	elf__seq:bits_type -> dynsym_section_entry__inst__value [color="#404040"];
	dynsym_section_entry__seq:value_b64_type -> dynsym_section_entry__inst__value [color="#404040"];
	dynsym_section_entry__seq:ofs_name_type -> dynsym_section_entry__inst__name:name_pos [color="#404040"];
	dynsym_section_entry__seq:sh_idx_type -> dynsym_section_entry__inst__sh_idx_special [color="#404040"];
	note_section_entry__seq:len_name_type -> note_section_entry__seq:name_size [color="#404040"];
	note_section_entry__seq:len_name_type -> note_section_entry__seq:name_padding_size [color="#404040"];
	note_section_entry__seq:len_descriptor_type -> note_section_entry__seq:descriptor_size [color="#404040"];
	note_section_entry__seq:len_descriptor_type -> note_section_entry__seq:descriptor_padding_size [color="#404040"];
}