diff --git a/PrintCFG-false-successor.ql b/PrintCFG-false-successor.ql new file mode 100644 index 0000000..6d0fa50 --- /dev/null +++ b/PrintCFG-false-successor.ql @@ -0,0 +1,34 @@ +/** + * @name Print part of the CFG + * @description Outputs a subset of the control flow graph + * @id cpp/example/polkit/cfg-false-successor + * @kind graph + */ + +import cpp + +query predicate edges(ControlFlowNode n1, ControlFlowNode n2) { + exists( + RelationalOperation cmp, Parameter argc, ControlFlowNode startFrom, Variable n, ForStmt forloop + | + // minimal restriction: start from comparison + argc.getName() = "argc" and + argc.getAnAccess() = cmp.getAnOperand().getAChild*() and + n.getAnAccess() = cmp.getAnOperand().getAChild*() and + not n instanceof Parameter and + n.getName() = "n" and + forloop.getCondition() = cmp and + forloop.getControlFlowScope().getName() = "main" and + // + startFrom = cmp.getAFalseSuccessor() and + startFrom.getASuccessor*() = n1 and + // + n1.getASuccessor() = n2 and + n1.getControlFlowScope().getName() = "main" and + // polkit has many `main` functions, grab the one from pkexec.c + n1.getLocation().getFile().getBaseName() = "pkexec.c" + ) +} +// For reference, see the file +// db/polkit-0.119.db/tmp/polkit/src/programs/pkexec.c +// (after extracting src.zip) diff --git a/PrintCFG-false-successor.sh b/PrintCFG-false-successor.sh new file mode 100644 index 0000000..7b2a1eb --- /dev/null +++ b/PrintCFG-false-successor.sh @@ -0,0 +1,37 @@ +# +# Print a two-colored graph by using two queries' output; one with all nodes for +# layout, the other with false-successor nodes for coloring. +# + +#* Add codeql binary PATH +export PATH=$HOME/local/codeql-2.7.6/codeql:"$PATH" + +#* Graph in dgml format +cd ~/local/codeql-sample-polkit/ +codeql database analyze \ + ./db/polkit-0.119.db \ + ./PrintCFG-false-successor.ql \ + --rerun \ + -j8 -v --ram=16000 \ + --search-path $HOME/local/codeql-2.7.6/ql \ + --format=dgml \ + --output=PrintCFG.dgml + +# Clean up the dgml (xml) output +OUT=PrintCFG.dgml/cpp/example/polkit/cfg-false-successor.dgml +tidy -xml $OUT | sponge $OUT + +# Compare node Ids. They overlap, so graph visuals should work. +em PrintCFG.dgml/cpp/example/polkit/cfg-false-successor.dgml +em PrintCFG.dgml/cpp/example/polkit/cfg.dgml + +# Produce a full graph with false-successor nodes colored +./dgml2dot -m PrintCFG.dgml/cpp/example/polkit/cfg-false-successor.dgml < \ + PrintCFG.dgml/cpp/example/polkit/cfg.dgml > \ + PrintCFG.dgml/cpp/example/polkit/cfg-false-successor-colored.dot + +# Produce the DAG we really want +CFG=PrintCFG.dgml/cpp/example/polkit/cfg-false-successor-colored +dot -Tpdf < $CFG.dot > $CFG.pdf & +open $CFG.pdf + diff --git a/PrintCFG.dgml/cpp/example/polkit/cfg-false-successor-colored.dot b/PrintCFG.dgml/cpp/example/polkit/cfg-false-successor-colored.dot new file mode 100644 index 0000000..27c46fa --- /dev/null +++ b/PrintCFG.dgml/cpp/example/polkit/cfg-false-successor-colored.dot @@ -0,0 +1,3032 @@ +digraph qlast { +node [shape=box]; +nd_483723 [label="declaration"]; +nd_483743 [label="declaration"]; +nd_483757 [label="declaration"]; +nd_483767 [label="declaration"]; +nd_483775 [label="declaration"]; +nd_483794 [label="declaration"]; +nd_483806 [label="declaration"]; +nd_483821 [label="declaration"]; +nd_483838 [label="declaration"]; +nd_483856 [label="declaration"]; +nd_484271 [label="declaration"]; +nd_484285 [label="declaration"]; +nd_484339 [label="declaration"]; +nd_484367 [label="declaration"]; +nd_484410 [label="declaration"]; +nd_485032 [label="declaration"]; +nd_485040 [label="declaration"]; +nd_485072 [label="declaration"]; +nd_485089 [label="declaration"]; +nd_486127 [label="initializer for environment_variables_to_save"]; +nd_485121 [label="{...}"]; +nd_486134 [label="declaration"]; +nd_485657 [label="SHELL"]; +nd_485678 [label="LANG"]; +nd_485697 [label="LINGUAS"]; +nd_485708 [label="LANGUAGE"]; +nd_485732 [label="LC_COLLATE"]; +nd_485749 [label="LC_CTYPE"]; +nd_485759 [label="LC_MESSAGES"]; +nd_485786 [label="LC_MONETARY"]; +nd_485810 [label="LC_NUMERIC"]; +nd_485825 [label="LC_TIME"]; +nd_485853 [label="LC_ALL"]; +nd_485869 [label="TERM"]; +nd_485889 [label="COLORTERM"]; +nd_485915 [label="DISPLAY"]; +nd_485969 [label="XAUTHORITY"]; +nd_485986 [label="0"]; +nd_486151 [label="declaration"]; +nd_486176 [label="declaration"]; +nd_486184 [label="declaration"]; +nd_486193 [label="ExprStmt"]; +nd_486210 [label="127"]; +nd_486204 [label="ret"]; +nd_486220 [label="... = ..."]; +nd_486227 [label="ExprStmt"]; +nd_486493 [label="0"]; +nd_486237 [label="authority"]; +nd_486511 [label="... = ..."]; +nd_486514 [label="ExprStmt"]; +nd_486555 [label="0"]; +nd_486549 [label="subject"]; +nd_486573 [label="... = ..."]; +nd_486577 [label="ExprStmt"]; +nd_486595 [label="0"]; +nd_486585 [label="details"]; +nd_486621 [label="... = ..."]; +nd_486626 [label="ExprStmt"]; +nd_486670 [label="0"]; +nd_486664 [label="result"]; +nd_486683 [label="... = ..."]; +nd_486687 [label="ExprStmt"]; +nd_486714 [label="0"]; +nd_486693 [label="action_id"]; +nd_486739 [label="... = ..."]; +nd_486742 [label="ExprStmt"]; +nd_487127 [label="0"]; +nd_487116 [label="saved_env"]; +nd_487148 [label="... = ..."]; +nd_487151 [label="ExprStmt"]; +nd_487168 [label="0"]; +nd_487158 [label="path"]; +nd_487199 [label="... = ..."]; +nd_487210 [label="ExprStmt"]; +nd_487267 [label="0"]; +nd_487222 [label="exec_argv"]; +nd_487291 [label="... = ..."]; +nd_487297 [label="ExprStmt"]; +nd_487368 [label="0"]; +nd_487356 [label="command_line"]; +nd_487422 [label="... = ..."]; +nd_487425 [label="ExprStmt"]; +nd_487594 [label="0"]; +nd_487434 [label="opt_user"]; +nd_487634 [label="... = ..."]; +nd_487640 [label="ExprStmt"]; +nd_487707 [label="0"]; +nd_487649 [label="local_agent_handle"]; +nd_487735 [label="... = ..."]; +nd_487738 [label="ExprStmt"]; +nd_487747 [label="GIO_USE_VFS"]; +nd_487741 [label="call to setenv"]; +nd_487821 [label="if (...) ..."]; +nd_487759 [label="local"]; +nd_487819 [label="1"]; +nd_487829 [label="call to geteuid"]; +nd_487937 [label="0"]; +nd_487944 [label="... != ..."]; +nd_488101 [label="{ ... }"]; +nd_488107 [label="ExprStmt"]; +nd_488021 [label="ExprStmt"]; +nd_488079 [label="pkexec must be setuid root"]; +nd_488031 [label="call to g_printerr"]; +nd_488093 [label="goto ..."]; +nd_506901 [label="label ...:", color=green]; +nd_488203 [label="call to g_get_user_name"]; +nd_488151 [label="original_user_name"]; +nd_488206 [label="... = ..."]; +nd_488155 [label="call to g_strdup"]; +nd_488210 [label="if (...) ..."]; +nd_488240 [label="original_user_name"]; +nd_488246 [label="0"]; +nd_488258 [label="... == ..."]; +nd_488385 [label="{ ... }"]; +nd_488388 [label="if (...) ..."]; +nd_488261 [label="ExprStmt"]; +nd_488298 [label="Error getting user name."]; +nd_488264 [label="call to g_printerr"]; +nd_488316 [label="goto ..."]; +nd_488478 [label="call to g_get_current_dir"]; +nd_488399 [label="original_cwd"]; +nd_488484 [label="... = ..."]; +nd_488502 [label="0"]; +nd_488550 [label="... == ..."]; +nd_488743 [label="{ ... }"]; +nd_488748 [label="ExprStmt"]; +nd_488555 [label="ExprStmt"]; +nd_488595 [label="Error getting cwd: %s"]; +nd_488566 [label="call to g_printerr"]; +nd_488737 [label="goto ..."]; +nd_488719 [label="call to __errno_location"]; +nd_488616 [label="call to g_strerror"]; +nd_488726 [label="* ..."]; +nd_488762 [label="0"]; +nd_488755 [label="opt_show_help"]; +nd_488769 [label="... = ..."]; +nd_488772 [label="ExprStmt"]; +nd_488784 [label="0"]; +nd_488778 [label="opt_show_version"]; +nd_488790 [label="... = ..."]; +nd_488793 [label="ExprStmt"]; +nd_488843 [label="0"]; +nd_488799 [label="opt_disable_internal_agent"]; +nd_488850 [label="... = ..."]; +nd_490029 [label="{ ... }"]; +nd_488855 [label="for(...;...;...) ..."]; +nd_489982 [label="ExprStmt"]; +nd_488955 [label="n"]; +nd_488958 [label="argc"]; +nd_488967 [label="... < ..."]; +nd_489974 [label="{ ... }"]; +nd_490022 [label="label ...:", color=green]; +nd_488970 [label="if (...) ..."]; +nd_489164 [label="argv"]; +nd_489160 [label="call to strcmp"]; +nd_489284 [label="0"]; +nd_489174 [label="n"]; +nd_489259 [label="access to array"]; +nd_489267 [label="--help"]; +nd_489287 [label="... == ..."]; +nd_489333 [label="{ ... }"]; +nd_489339 [label="if (...) ..."]; +nd_489296 [label="ExprStmt"]; +nd_489308 [label="0"]; +nd_489301 [label="opt_show_help"]; +nd_489327 [label="... = ..."]; +nd_489315 [label="! ..."]; +nd_490011 [label="n"]; +nd_489353 [label="argv"]; +nd_489348 [label="call to strcmp"]; +nd_489383 [label="0"]; +nd_489359 [label="n"]; +nd_489363 [label="access to array"]; +nd_489374 [label="--version"]; +nd_489386 [label="... == ..."]; +nd_489431 [label="{ ... }"]; +nd_489436 [label="if (...) ..."]; +nd_489393 [label="ExprStmt"]; +nd_489409 [label="0"]; +nd_489399 [label="opt_show_version"]; +nd_489428 [label="... = ..."]; +nd_489418 [label="! ..."]; +nd_489603 [label="... || ..."]; +nd_489440 [label="call to strcmp"]; +nd_489500 [label="0"]; +nd_489444 [label="argv"]; +nd_489447 [label="n"]; +nd_489451 [label="access to array"]; +nd_489479 [label="--user"]; +nd_489503 [label="... == ..."]; +nd_489515 [label="argv"]; +nd_489832 [label="{ ... }"]; +nd_489509 [label="call to strcmp"]; +nd_489594 [label="0"]; +nd_489523 [label="n"]; +nd_489528 [label="access to array"]; +nd_489543 [label="-u"]; +nd_489597 [label="... == ..."]; +nd_489837 [label="if (...) ..."]; +nd_489607 [label="ExprStmt"]; +nd_489611 [label="n"]; +nd_489614 [label="... ++"]; +nd_489620 [label="if (...) ..."]; +nd_489625 [label="n"]; +nd_489633 [label="argc"]; +nd_489642 [label="... >= ..."]; +nd_489694 [label="{ ... }"]; +nd_489700 [label="if (...) ..."]; +nd_489650 [label="ExprStmt"]; +nd_489678 [label="argc"]; +nd_489673 [label="call to usage"]; +nd_489689 [label="goto ..."]; +nd_489684 [label="argv"]; +nd_489703 [label="opt_user"]; +nd_489709 [label="0"]; +nd_489730 [label="... != ..."]; +nd_489784 [label="{ ... }"]; +nd_489790 [label="ExprStmt"]; +nd_489737 [label="ExprStmt"]; +nd_489768 [label="--user specified twice"]; +nd_489741 [label="call to g_printerr"]; +nd_489781 [label="goto ..."]; +nd_489806 [label="argv"]; +nd_489796 [label="opt_user"]; +nd_489825 [label="... = ..."]; +nd_489802 [label="call to g_strdup"]; +nd_489811 [label="n"]; +nd_489817 [label="access to array"]; +nd_489849 [label="argv"]; +nd_489842 [label="call to strcmp"]; +nd_489902 [label="0"]; +nd_489853 [label="n"]; +nd_489858 [label="access to array"]; +nd_489884 [label="--disable-internal-agent"]; +nd_489906 [label="... == ..."]; +nd_489958 [label="{ ... }"]; +nd_489969 [label="{ ... }"]; +nd_489911 [label="ExprStmt"]; +nd_489927 [label="0"]; +nd_489917 [label="opt_disable_internal_agent"]; +nd_489953 [label="... = ..."]; +nd_489938 [label="! ..."]; +nd_489964 [label="break;"]; +nd_489996 [label="1"]; +nd_489987 [label="n"]; +nd_490006 [label="... = ..."]; +nd_490016 [label="... ++"]; +nd_490032 [label="if (...) ...", color=green]; +nd_490042 [label="opt_show_help", color=green]; +nd_490158 [label="{ ... }", color=green]; +nd_490166 [label="if (...) ...", color=green]; +nd_490088 [label="ExprStmt", color=green]; +nd_490104 [label="argc", color=green]; +nd_490097 [label="call to usage", color=green]; +nd_490114 [label="ExprStmt", color=green]; +nd_490109 [label="argv", color=green]; +nd_490131 [label="0", color=green]; +nd_490121 [label="ret", color=green]; +nd_490145 [label="... = ...", color=green]; +nd_490151 [label="goto ...", color=green]; +nd_490175 [label="opt_show_version", color=green]; +nd_490287 [label="{ ... }", color=green]; +nd_490295 [label="if (...) ...", color=green]; +nd_490183 [label="ExprStmt", color=green]; +nd_490221 [label="pkexec version %s", color=green]; +nd_490196 [label="call to g_print", color=green]; +nd_490249 [label="ExprStmt", color=green]; +nd_490240 [label="0.119", color=green]; +nd_490266 [label="0", color=green]; +nd_490254 [label="ret", color=green]; +nd_490275 [label="... = ...", color=green]; +nd_490282 [label="goto ...", color=green]; +nd_490306 [label="opt_user", color=green]; +nd_490317 [label="0", color=green]; +nd_490345 [label="... == ...", color=green]; +nd_490351 [label="ExprStmt", color=green]; +nd_490396 [label="ExprStmt", color=green]; +nd_490375 [label="root", color=green]; +nd_490358 [label="opt_user", color=green]; +nd_490389 [label="... = ...", color=green]; +nd_490363 [label="call to g_strdup", color=green]; +nd_490480 [label="opt_user", color=green]; +nd_490405 [label="rc", color=green]; +nd_490580 [label="... = ...", color=green]; +nd_490472 [label="call to getpwnam_r", color=green]; +nd_490495 [label="pwstruct", color=green]; +nd_490505 [label="& ...", color=green]; +nd_490513 [label="pwbuf", color=green]; +nd_490533 [label="pwbuf", color=green]; +nd_490525 [label="sizeof()", color=green]; +nd_490564 [label="pw", color=green]; +nd_490575 [label="& ...", color=green]; +nd_490585 [label="if (...) ...", color=green]; +nd_490750 [label="... && ...", color=green]; +nd_490650 [label="rc", color=green]; +nd_490661 [label="0", color=green]; +nd_490664 [label="... == ...", color=green]; +nd_490668 [label="pw", color=green]; +nd_490792 [label="if (...) ...", color=green]; +nd_490727 [label="0", color=green]; +nd_490747 [label="... == ...", color=green]; +nd_490789 [label="{ ... }", color=green]; +nd_490755 [label="ExprStmt", color=green]; +nd_490770 [label="User `%s' does not exist.", color=green]; +nd_490760 [label="call to g_printerr", color=green]; +nd_490785 [label="goto ...", color=green]; +nd_490781 [label="opt_user", color=green]; +nd_490795 [label="pw", color=green]; +nd_490804 [label="0", color=green]; +nd_490903 [label="... == ...", color=green]; +nd_491081 [label="{ ... }", color=green]; +nd_491088 [label="do (...) ...", color=green]; +nd_490906 [label="ExprStmt", color=green]; +nd_490923 [label="Error getting information for user `%s': %s", color=green]; +nd_490912 [label="call to g_printerr", color=green]; +nd_491056 [label="goto ...", color=green]; +nd_490957 [label="opt_user", color=green]; +nd_490966 [label="rc", color=green]; +nd_490962 [label="call to g_strerror", color=green]; +nd_491997 [label="{ ... }", color=green]; +nd_491524 [label="0", color=green]; +nd_492008 [label="ExprStmt", color=green]; +nd_491530 [label="if (...) ...", color=green]; +nd_491685 [label="{ ... }", color=green]; +nd_491553 [label="call to __builtin_expect", color=green]; +nd_491788 [label=";", color=green]; +nd_491795 [label="ExprStmt", color=green]; +nd_491559 [label="(statement expression)", color=green]; +nd_491701 [label="1", color=green]; +nd_491575 [label="declaration", color=green]; +nd_491582 [label="if (...) ...", color=green]; +nd_491586 [label="argv", color=green]; +nd_491595 [label="argc", color=green]; +nd_491599 [label="access to array", color=green]; +nd_491613 [label="0", color=green]; +nd_491646 [label="... == ...", color=green]; +nd_491652 [label="ExprStmt", color=green]; +nd_491665 [label="ExprStmt", color=green]; +nd_491660 [label="1", color=green]; +nd_491655 [label="_g_boolean_var_", color=green]; +nd_491662 [label="... = ...", color=green]; +nd_491678 [label="ExprStmt", color=green]; +nd_491671 [label="0", color=green]; +nd_491667 [label="_g_boolean_var_", color=green]; +nd_491673 [label="... = ...", color=green]; +nd_491680 [label="_g_boolean_var_", color=green]; +nd_491836 [label="0", color=green]; +nd_491885 [label="../src/programs/pkexec.c", color=green]; +nd_491907 [label="609", color=green]; +nd_491944 [label="__func__", color=green]; +nd_491980 [label="argv[argc] == NULL", color=green]; +nd_491812 [label="call to g_assertion_message_expr", color=green]; +nd_492032 [label="argv", color=green]; +nd_492014 [label="path", color=green]; +nd_492064 [label="... = ...", color=green]; +nd_492024 [label="call to g_strdup", color=green]; +nd_492044 [label="n", color=green]; +nd_492051 [label="access to array", color=green]; +nd_492073 [label="if (...) ...", color=green]; +nd_492098 [label="path", color=green]; +nd_492108 [label="0", color=green]; +nd_492129 [label="... == ...", color=green]; +nd_492444 [label="{ ... }", color=green]; +nd_492451 [label="if (...) ...", color=green]; +nd_492149 [label="declaration", color=green]; +nd_492153 [label="ExprStmt", color=green]; +nd_492163 [label="pwstruct", color=green]; +nd_492156 [label="path", color=green]; +nd_492172 [label="... = ...", color=green]; +nd_492160 [label="call to g_strdup", color=green]; +nd_492166 [label="pw_shell", color=green]; +nd_492175 [label="if (...) ...", color=green]; +nd_492179 [label="path", color=green]; +nd_492182 [label="! ...", color=green]; +nd_492236 [label="{ ... }", color=green]; +nd_492243 [label="ExprStmt", color=green]; +nd_492185 [label="ExprStmt", color=green]; +nd_492211 [label="No shell configured or error retrieving pw_shell", color=green]; +nd_492188 [label="call to g_printerr", color=green]; +nd_492229 [label="goto ...", color=green]; +nd_492259 [label="path", color=green]; +nd_492249 [label="command_line", color=green]; +nd_492266 [label="... = ...", color=green]; +nd_492254 [label="call to g_strdup", color=green]; +nd_492271 [label="ExprStmt", color=green]; +nd_492285 [label="call to g_ptr_array_new", color=green]; +nd_492276 [label="shell_argv", color=green]; +nd_492290 [label="... = ...", color=green]; +nd_492295 [label="ExprStmt", color=green]; +nd_492309 [label="shell_argv", color=green]; +nd_492304 [label="call to g_ptr_array_add", color=green]; +nd_492323 [label="ExprStmt", color=green]; +nd_492314 [label="path", color=green]; +nd_492331 [label="shell_argv", color=green]; +nd_492328 [label="call to g_ptr_array_add", color=green]; +nd_492359 [label="ExprStmt", color=green]; +nd_492342 [label="0", color=green]; +nd_492414 [label="shell_argv", color=green]; +nd_492364 [label="exec_argv", color=green]; +nd_492439 [label="... = ...", color=green]; +nd_492409 [label="call to g_ptr_array_free", color=green]; +nd_492424 [label="0", color=green]; +nd_492461 [label="path", color=green]; +nd_492467 [label="0", color=green]; +nd_492469 [label="access to array", color=green]; +nd_492477 [label="47", color=green]; +nd_492479 [label="... != ...", color=green]; +nd_493766 [label="{ ... }", color=green]; +nd_493771 [label="if (...) ...", color=green]; +nd_492482 [label="ExprStmt", color=green]; +nd_492491 [label="path", color=green]; +nd_492485 [label="s", color=green]; +nd_492496 [label="... = ...", color=green]; +nd_492488 [label="call to g_find_program_in_path", color=green]; +nd_492499 [label="if (...) ...", color=green]; +nd_492502 [label="s", color=green]; +nd_492508 [label="0", color=green]; +nd_492520 [label="... == ...", color=green]; +nd_493429 [label="{ ... }", color=green]; +nd_493433 [label="ExprStmt", color=green]; +nd_492523 [label="ExprStmt", color=green]; +nd_492536 [label="Cannot run program %s: %s", color=green]; +nd_492526 [label="call to g_printerr", color=green]; +nd_493426 [label="goto ...", color=green]; +nd_492544 [label="path", color=green]; +nd_493422 [label="2", color=green]; +nd_493412 [label="call to strerror", color=green]; +nd_493651 [label="path", color=green]; +nd_493646 [label="call to g_free", color=green]; +nd_493656 [label="ExprStmt", color=green]; +nd_493755 [label="s", color=green]; +nd_493660 [label="argv", color=green]; +nd_493664 [label="n", color=green]; +nd_493747 [label="access to array", color=green]; +nd_493761 [label="... = ...", color=green]; +nd_493752 [label="path", color=green]; +nd_493758 [label="... = ...", color=green]; +nd_493795 [label="path", color=green]; +nd_493790 [label="call to access", color=green]; +nd_493808 [label="0", color=green]; +nd_493803 [label="0", color=green]; +nd_493812 [label="... != ...", color=green]; +nd_494066 [label="{ ... }", color=green]; +nd_494071 [label="if (...) ...", color=green]; +nd_493817 [label="ExprStmt", color=green]; +nd_494014 [label="Error accessing %s: %s", color=green]; +nd_493822 [label="call to g_printerr", color=green]; +nd_494061 [label="goto ...", color=green]; +nd_494031 [label="path", color=green]; +nd_494045 [label="call to __errno_location", color=green]; +nd_494039 [label="call to g_strerror", color=green]; +nd_494050 [label="* ...", color=green]; +nd_494077 [label="command_line", color=green]; +nd_494082 [label="! ...", color=green]; +nd_494191 [label="{ ... }", color=green]; +nd_494194 [label="ExprStmt", color=green]; +nd_494087 [label="ExprStmt", color=green]; +nd_494120 [label="", color=green]; +nd_494093 [label="command_line", color=green]; +nd_494151 [label="... = ...", color=green]; +nd_494106 [label="call to g_strjoinv", color=green]; +nd_494132 [label="argv", color=green]; +nd_494139 [label="n", color=green]; +nd_494144 [label="... + ...", color=green]; +nd_494159 [label="ExprStmt", color=green]; +nd_494170 [label="argv", color=green]; +nd_494164 [label="exec_argv", color=green]; +nd_494186 [label="... = ...", color=green]; +nd_494178 [label="n", color=green]; +nd_494183 [label="... + ...", color=green]; +nd_494202 [label="call to g_ptr_array_new", color=green]; +nd_494198 [label="saved_env", color=green]; +nd_494207 [label="... = ...", color=green]; +nd_494211 [label="for(...;...;...) ...", color=green]; +nd_494876 [label="ExprStmt", color=green]; +nd_494229 [label="environment_variables_to_save", color=green]; +nd_494249 [label="n", color=green]; +nd_494255 [label="access to array", color=green]; +nd_494266 [label="0", color=green]; +nd_494297 [label="... != ...", color=green]; +nd_494869 [label="{ ... }", color=green]; +nd_494983 [label="if (...) ...", color=green]; +nd_494307 [label="environment_variables_to_save", color=green]; +nd_494318 [label="n", color=green]; +nd_494324 [label="access to array", color=green]; +nd_494360 [label="declaration", color=green]; +nd_494330 [label="initializer for key", color=green]; +nd_494354 [label="declaration", color=green]; +nd_494365 [label="ExprStmt", color=green]; +nd_494392 [label="key", color=green]; +nd_494371 [label="value", color=green]; +nd_494398 [label="... = ...", color=green]; +nd_494385 [label="call to g_getenv", color=green]; +nd_494407 [label="if (...) ...", color=green]; +nd_494411 [label="value", color=green]; +nd_494422 [label="0", color=green]; +nd_494463 [label="... == ...", color=green]; +nd_494473 [label="continue;", color=green]; +nd_494479 [label="if (...) ...", color=green]; +nd_494864 [label="label ...:", color=green]; +nd_494498 [label="key", color=green]; +nd_494492 [label="call to validate_environment_variable", color=green]; +nd_494509 [label="! ...", color=green]; +nd_494502 [label="value", color=green]; +nd_494516 [label="goto ...", color=green]; +nd_494524 [label="ExprStmt", color=green]; +nd_494530 [label="saved_env", color=green]; +nd_494527 [label="call to g_ptr_array_add", color=green]; +nd_494554 [label="ExprStmt", color=green]; +nd_494539 [label="key", color=green]; +nd_494533 [label="call to g_strdup", color=green]; +nd_494565 [label="saved_env", color=green]; +nd_494558 [label="call to g_ptr_array_add", color=green]; +nd_494841 [label="value", color=green]; +nd_494832 [label="call to g_strdup", color=green]; +nd_494856 [label="{ ... }", color=green]; +nd_494968 [label="n", color=green]; +nd_494951 [label="0", color=green]; +nd_494880 [label="n", color=green]; +nd_494963 [label="... = ...", color=green]; +nd_494975 [label="... ++", color=green]; +nd_495029 [label="XAUTHORITY", color=green]; +nd_495013 [label="call to g_getenv", color=green]; +nd_495052 [label="0", color=green]; +nd_495422 [label="... == ...", color=green]; +nd_495860 [label="{ ... }", color=green]; +nd_495868 [label="if (...) ...", color=green]; +nd_495442 [label="declaration", color=green]; +nd_495451 [label="ExprStmt", color=green]; +nd_495466 [label="HOME", color=green]; +nd_495455 [label="home", color=green]; +nd_495472 [label="... = ...", color=green]; +nd_495459 [label="call to g_getenv", color=green]; +nd_495475 [label="if (...) ...", color=green]; +nd_495482 [label="home", color=green]; +nd_495509 [label="0", color=green]; +nd_495617 [label="... == ...", color=green]; +nd_495622 [label="ExprStmt", color=green]; +nd_495642 [label="if (...) ...", color=green]; +nd_495633 [label="call to g_get_home_dir", color=green]; +nd_495626 [label="home", color=green]; +nd_495638 [label="... = ...", color=green]; +nd_495647 [label="home", color=green]; +nd_495656 [label="0", color=green]; +nd_495752 [label="... != ...", color=green]; +nd_495852 [label="{ ... }", color=green]; +nd_495757 [label="ExprStmt", color=green]; +nd_495765 [label="saved_env", color=green]; +nd_495760 [label="call to g_ptr_array_add", color=green]; +nd_495795 [label="ExprStmt", color=green]; +nd_495780 [label="XAUTHORITY", color=green]; +nd_495771 [label="call to g_strdup", color=green]; +nd_495804 [label="saved_env", color=green]; +nd_495800 [label="call to g_ptr_array_add", color=green]; +nd_495818 [label="home", color=green]; +nd_495814 [label="call to g_build_filename", color=green]; +nd_495825 [label=".Xauthority", color=green]; +nd_495835 [label="0", color=green]; +nd_495877 [label="call to clearenv", color=green]; +nd_495887 [label="0", color=green]; +nd_495890 [label="... != ...", color=green]; +nd_496001 [label="{ ... }", color=green]; +nd_496010 [label="if (...) ...", color=green]; +nd_495895 [label="ExprStmt", color=green]; +nd_495908 [label="Error clearing environment: %s", color=green]; +nd_495899 [label="call to g_printerr", color=green]; +nd_495936 [label="goto ...", color=green]; +nd_495923 [label="call to __errno_location", color=green]; +nd_495918 [label="call to g_strerror", color=green]; +nd_495930 [label="* ...", color=green]; +nd_496047 [label="1", color=green]; +nd_496037 [label="call to prctl", color=green]; +nd_496075 [label="0", color=green]; +nd_496056 [label="15", color=green]; +nd_496087 [label="... != ...", color=green]; +nd_496153 [label="{ ... }", color=green]; +nd_496159 [label="ExprStmt", color=green]; +nd_496095 [label="ExprStmt", color=green]; +nd_496117 [label="prctl(PR_SET_PDEATHSIG, SIGTERM) failed: %s", color=green]; +nd_496100 [label="call to g_printerr", color=green]; +nd_496148 [label="goto ...", color=green]; +nd_496132 [label="call to __errno_location", color=green]; +nd_496127 [label="call to g_strerror", color=green]; +nd_496137 [label="* ...", color=green]; +nd_496175 [label="call to getppid", color=green]; +nd_496165 [label="pid_of_caller", color=green]; +nd_496182 [label="... = ...", color=green]; +nd_496185 [label="if (...) ...", color=green]; +nd_496188 [label="pid_of_caller", color=green]; +nd_496194 [label="1", color=green]; +nd_496266 [label="... == ...", color=green]; +nd_496304 [label="{ ... }", color=green]; +nd_496307 [label="ExprStmt", color=green]; +nd_496270 [label="ExprStmt", color=green]; +nd_496295 [label="Refusing to render service to dead parents.", color=green]; +nd_496282 [label="call to g_printerr", color=green]; +nd_496301 [label="goto ...", color=green]; +nd_496378 [label="pid_of_caller", color=green]; +nd_496310 [label="subject", color=green]; +nd_496414 [label="... = ...", color=green]; +nd_496317 [label="call to polkit_unix_process_new_for_owner", color=green]; +nd_496387 [label="0", color=green]; +nd_496407 [label="call to getuid", color=green]; +nd_496419 [label="do (...) ...", color=green]; +nd_496584 [label="{ ... }", color=green]; +nd_496444 [label="0", color=green]; +nd_496586 [label="do (...) ...", color=green]; +nd_496446 [label="if (...) ...", color=green]; +nd_496513 [label="{ ... }", color=green]; +nd_496449 [label="call to __builtin_expect", color=green]; +nd_496529 [label=";", color=green]; +nd_496531 [label="ExprStmt", color=green]; +nd_496451 [label="(statement expression)", color=green]; +nd_496521 [label="1", color=green]; +nd_496457 [label="declaration", color=green]; +nd_496459 [label="if (...) ...", color=green]; +nd_496461 [label="subject", color=green]; +nd_496469 [label="0", color=green]; +nd_496482 [label="... != ...", color=green]; +nd_496485 [label="ExprStmt", color=green]; +nd_496497 [label="ExprStmt", color=green]; +nd_496491 [label="1", color=green]; +nd_496487 [label="_g_boolean_var_", color=green]; +nd_496493 [label="... = ...", color=green]; +nd_496509 [label="ExprStmt", color=green]; +nd_496505 [label="0", color=green]; +nd_496499 [label="_g_boolean_var_", color=green]; +nd_496507 [label="... = ...", color=green]; +nd_496511 [label="_g_boolean_var_", color=green]; +nd_496539 [label="0", color=green]; +nd_496555 [label="../src/programs/pkexec.c", color=green]; +nd_496563 [label="747", color=green]; +nd_496565 [label="__func__", color=green]; +nd_496578 [label="subject != NULL", color=green]; +nd_496535 [label="call to g_assertion_message_expr", color=green]; +nd_497346 [label="{ ... }", color=green]; +nd_496609 [label="0", color=green]; +nd_497355 [label="do (...) ...", color=green]; +nd_496612 [label="if (...) ...", color=green]; +nd_496748 [label="{ ... }", color=green]; +nd_496615 [label="call to __builtin_expect", color=green]; +nd_496765 [label=";", color=green]; +nd_496767 [label="ExprStmt", color=green]; +nd_496619 [label="(statement expression)", color=green]; +nd_496755 [label="1", color=green]; +nd_496627 [label="declaration", color=green]; +nd_496629 [label="if (...) ...", color=green]; +nd_496652 [label="subject", color=green]; +nd_496633 [label="call to polkit_unix_process_get_pid", color=green]; +nd_496712 [label="pid_of_caller", color=green]; +nd_496638 [label="call to g_type_check_instance_cast", color=green]; +nd_496681 [label="call to polkit_unix_process_get_type", color=green]; +nd_496715 [label="... == ...", color=green]; +nd_496718 [label="ExprStmt", color=green]; +nd_496730 [label="ExprStmt", color=green]; +nd_496724 [label="1", color=green]; +nd_496720 [label="_g_boolean_var_", color=green]; +nd_496728 [label="... = ...", color=green]; +nd_496742 [label="ExprStmt", color=green]; +nd_496738 [label="0", color=green]; +nd_496732 [label="_g_boolean_var_", color=green]; +nd_496740 [label="... = ...", color=green]; +nd_496744 [label="_g_boolean_var_", color=green]; +nd_496778 [label="0", color=green]; +nd_496802 [label="../src/programs/pkexec.c", color=green]; +nd_496816 [label="748", color=green]; +nd_496821 [label="__func__", color=green]; +nd_496846 [label="polkit_unix_process_get_pid (POLKIT_UNIX_PROCESS (subject)) == pid_of_caller", color=green]; +nd_496771 [label="call to g_assertion_message_expr", color=green]; +nd_497647 [label="{ ... }", color=green]; +nd_497396 [label="0", color=green]; +nd_497649 [label="do (...) ...", color=green]; +nd_497399 [label="if (...) ...", color=green]; +nd_497544 [label="{ ... }", color=green]; +nd_497405 [label="call to __builtin_expect", color=green]; +nd_497564 [label=";", color=green]; +nd_497566 [label="ExprStmt", color=green]; +nd_497409 [label="(statement expression)", color=green]; +nd_497554 [label="1", color=green]; +nd_497423 [label="declaration", color=green]; +nd_497426 [label="if (...) ...", color=green]; +nd_497449 [label="subject", color=green]; +nd_497431 [label="call to polkit_unix_process_get_uid", color=green]; +nd_497498 [label="0", color=green]; +nd_497435 [label="call to g_type_check_instance_cast", color=green]; +nd_497466 [label="call to polkit_unix_process_get_type", color=green]; +nd_497501 [label="... >= ...", color=green]; +nd_497505 [label="ExprStmt", color=green]; +nd_497522 [label="ExprStmt", color=green]; +nd_497512 [label="1", color=green]; +nd_497507 [label="_g_boolean_var_", color=green]; +nd_497515 [label="... = ...", color=green]; +nd_497537 [label="ExprStmt", color=green]; +nd_497532 [label="0", color=green]; +nd_497525 [label="_g_boolean_var_", color=green]; +nd_497534 [label="... = ...", color=green]; +nd_497541 [label="_g_boolean_var_", color=green]; +nd_497575 [label="0", color=green]; +nd_497607 [label="../src/programs/pkexec.c", color=green]; +nd_497618 [label="749", color=green]; +nd_497621 [label="__func__", color=green]; +nd_497637 [label="polkit_unix_process_get_uid (POLKIT_UNIX_PROCESS (subject)) >= 0", color=green]; +nd_497570 [label="call to g_assertion_message_expr", color=green]; +nd_497968 [label="{ ... }", color=green]; +nd_497689 [label="0", color=green]; +nd_497974 [label="ExprStmt", color=green]; +nd_497692 [label="if (...) ...", color=green]; +nd_497861 [label="{ ... }", color=green]; +nd_497697 [label="call to __builtin_expect", color=green]; +nd_497883 [label=";", color=green]; +nd_497887 [label="ExprStmt", color=green]; +nd_497700 [label="(statement expression)", color=green]; +nd_497873 [label="1", color=green]; +nd_497713 [label="declaration", color=green]; +nd_497716 [label="if (...) ...", color=green]; +nd_497747 [label="subject", color=green]; +nd_497726 [label="call to polkit_unix_process_get_start_time", color=green]; +nd_497803 [label="0", color=green]; +nd_497732 [label="call to g_type_check_instance_cast", color=green]; +nd_497766 [label="call to polkit_unix_process_get_type", color=green]; +nd_497813 [label="... > ...", color=green]; +nd_497818 [label="ExprStmt", color=green]; +nd_497835 [label="ExprStmt", color=green]; +nd_497827 [label="1", color=green]; +nd_497820 [label="_g_boolean_var_", color=green]; +nd_497831 [label="... = ...", color=green]; +nd_497853 [label="ExprStmt", color=green]; +nd_497846 [label="0", color=green]; +nd_497838 [label="_g_boolean_var_", color=green]; +nd_497849 [label="... = ...", color=green]; +nd_497857 [label="_g_boolean_var_", color=green]; +nd_497905 [label="0", color=green]; +nd_497925 [label="../src/programs/pkexec.c", color=green]; +nd_497939 [label="750", color=green]; +nd_497941 [label="__func__", color=green]; +nd_497959 [label="polkit_unix_process_get_start_time (POLKIT_UNIX_PROCESS (subject)) > 0", color=green]; +nd_497899 [label="call to g_assertion_message_expr", color=green]; +nd_497991 [label="0", color=green]; +nd_497981 [label="error", color=green]; +nd_498011 [label="... = ...", color=green]; +nd_498016 [label="ExprStmt", color=green]; +nd_498053 [label="0", color=green]; +nd_498026 [label="authority", color=green]; +nd_498082 [label="... = ...", color=green]; +nd_498045 [label="call to polkit_authority_get_sync", color=green]; +nd_498073 [label="error", color=green]; +nd_498077 [label="& ...", color=green]; +nd_498087 [label="if (...) ...", color=green]; +nd_498097 [label="authority", color=green]; +nd_498109 [label="0", color=green]; +nd_498133 [label="... == ...", color=green]; +nd_498212 [label="{ ... }", color=green]; +nd_498217 [label="do (...) ...", color=green]; +nd_498140 [label="ExprStmt", color=green]; +nd_498157 [label="Error getting authority: %s", color=green]; +nd_498145 [label="call to g_printerr", color=green]; +nd_498182 [label="ExprStmt", color=green]; +nd_498169 [label="error", color=green]; +nd_498177 [label="message", color=green]; +nd_498200 [label="error", color=green]; +nd_498195 [label="call to g_error_free", color=green]; +nd_498205 [label="goto ...", color=green]; +nd_498507 [label="{ ... }", color=green]; +nd_498264 [label="0", color=green]; +nd_498515 [label="do (...) ...", color=green]; +nd_498267 [label="if (...) ...", color=green]; +nd_498380 [label="{ ... }", color=green]; +nd_498275 [label="call to __builtin_expect", color=green]; +nd_498418 [label=";", color=green]; +nd_498422 [label="ExprStmt", color=green]; +nd_498278 [label="(statement expression)", color=green]; +nd_498410 [label="1", color=green]; +nd_498293 [label="declaration", color=green]; +nd_498295 [label="if (...) ...", color=green]; +nd_498297 [label="path", color=green]; +nd_498310 [label="0", color=green]; +nd_498329 [label="... != ...", color=green]; +nd_498334 [label="ExprStmt", color=green]; +nd_498352 [label="ExprStmt", color=green]; +nd_498345 [label="1", color=green]; +nd_498337 [label="_g_boolean_var_", color=green]; +nd_498348 [label="... = ...", color=green]; +nd_498370 [label="ExprStmt", color=green]; +nd_498362 [label="0", color=green]; +nd_498357 [label="_g_boolean_var_", color=green]; +nd_498365 [label="... = ...", color=green]; +nd_498375 [label="_g_boolean_var_", color=green]; +nd_498432 [label="0", color=green]; +nd_498455 [label="../src/programs/pkexec.c", color=green]; +nd_498468 [label="761", color=green]; +nd_498471 [label="__func__", color=green]; +nd_498489 [label="path != NULL", color=green]; +nd_498425 [label="call to g_assertion_message_expr", color=green]; +nd_498807 [label="{ ... }", color=green]; +nd_498552 [label="0", color=green]; +nd_498812 [label="ExprStmt", color=green]; +nd_498554 [label="if (...) ...", color=green]; +nd_498672 [label="{ ... }", color=green]; +nd_498560 [label="call to __builtin_expect", color=green]; +nd_498693 [label=";", color=green]; +nd_498697 [label="ExprStmt", color=green]; +nd_498564 [label="(statement expression)", color=green]; +nd_498683 [label="1", color=green]; +nd_498579 [label="declaration", color=green]; +nd_498584 [label="if (...) ...", color=green]; +nd_498587 [label="exec_argv", color=green]; +nd_498600 [label="0", color=green]; +nd_498621 [label="... != ...", color=green]; +nd_498627 [label="ExprStmt", color=green]; +nd_498643 [label="ExprStmt", color=green]; +nd_498637 [label="1", color=green]; +nd_498630 [label="_g_boolean_var_", color=green]; +nd_498640 [label="... = ...", color=green]; +nd_498663 [label="ExprStmt", color=green]; +nd_498656 [label="0", color=green]; +nd_498647 [label="_g_boolean_var_", color=green]; +nd_498660 [label="... = ...", color=green]; +nd_498667 [label="_g_boolean_var_", color=green]; +nd_498711 [label="0", color=green]; +nd_498739 [label="../src/programs/pkexec.c", color=green]; +nd_498755 [label="762", color=green]; +nd_498757 [label="__func__", color=green]; +nd_498787 [label="exec_argv != NULL", color=green]; +nd_498703 [label="call to g_assertion_message_expr", color=green]; +nd_498855 [label="authority", color=green]; +nd_498818 [label="action_id", color=green]; +nd_498912 [label="... = ...", color=green]; +nd_498849 [label="call to find_action_for_path", color=green]; +nd_498861 [label="path", color=green]; +nd_498868 [label="exec_argv", color=green]; +nd_498882 [label="1", color=green]; +nd_498886 [label="access to array", color=green]; +nd_498898 [label="allow_gui", color=green]; +nd_498906 [label="& ...", color=green]; +nd_498918 [label="do (...) ...", color=green]; +nd_499278 [label="{ ... }", color=green]; +nd_498967 [label="0", color=green]; +nd_499283 [label="ExprStmt", color=green]; +nd_498971 [label="if (...) ...", color=green]; +nd_499091 [label="{ ... }", color=green]; +nd_498978 [label="call to __builtin_expect", color=green]; +nd_499116 [label=";", color=green]; +nd_499118 [label="ExprStmt", color=green]; +nd_498982 [label="(statement expression)", color=green]; +nd_499102 [label="1", color=green]; +nd_498992 [label="declaration", color=green]; +nd_498996 [label="if (...) ...", color=green]; +nd_499000 [label="action_id", color=green]; +nd_499015 [label="0", color=green]; +nd_499035 [label="... != ...", color=green]; +nd_499042 [label="ExprStmt", color=green]; +nd_499060 [label="ExprStmt", color=green]; +nd_499054 [label="1", color=green]; +nd_499046 [label="_g_boolean_var_", color=green]; +nd_499056 [label="... = ...", color=green]; +nd_499080 [label="ExprStmt", color=green]; +nd_499072 [label="0", color=green]; +nd_499064 [label="_g_boolean_var_", color=green]; +nd_499074 [label="... = ...", color=green]; +nd_499086 [label="_g_boolean_var_", color=green]; +nd_499128 [label="0", color=green]; +nd_499155 [label="../src/programs/pkexec.c", color=green]; +nd_499253 [label="767", color=green]; +nd_499255 [label="__func__", color=green]; +nd_499272 [label="action_id != NULL", color=green]; +nd_499121 [label="call to g_assertion_message_expr", color=green]; +nd_499289 [label="call to polkit_details_new", color=green]; +nd_499286 [label="details", color=green]; +nd_499294 [label="... = ...", color=green]; +nd_499298 [label="ExprStmt", color=green]; +nd_499306 [label="details", color=green]; +nd_499303 [label="call to polkit_details_insert", color=green]; +nd_499331 [label="if (...) ...", color=green]; +nd_499314 [label="user", color=green]; +nd_499320 [label="pw", color=green]; +nd_499325 [label="pw_name", color=green]; +nd_499337 [label="pw", color=green]; +nd_499340 [label="pw_gecos", color=green]; +nd_499348 [label="0", color=green]; +nd_499360 [label="... != ...", color=green]; +nd_499365 [label="ExprStmt", color=green]; +nd_499397 [label="if (...) ...", color=green]; +nd_499371 [label="details", color=green]; +nd_499368 [label="call to polkit_details_insert", color=green]; +nd_499379 [label="user.gecos", color=green]; +nd_499385 [label="pw", color=green]; +nd_499390 [label="pw_gecos", color=green]; +nd_499498 [label="... && ...", color=green]; +nd_499403 [label="pw", color=green]; +nd_499407 [label="pw_gecos", color=green]; +nd_499413 [label="0", color=green]; +nd_499439 [label="... != ...", color=green]; +nd_499458 [label="pw", color=green]; +nd_499576 [label="ExprStmt", color=green]; +nd_499454 [label="call to strlen", color=green]; +nd_499483 [label="0", color=green]; +nd_499465 [label="pw_gecos", color=green]; +nd_499493 [label="... > ...", color=green]; +nd_499504 [label="ExprStmt", color=green]; +nd_499538 [label="%s (%s)", color=green]; +nd_499509 [label="s", color=green]; +nd_499570 [label="... = ...", color=green]; +nd_499521 [label="call to g_strdup_printf", color=green]; +nd_499546 [label="pw", color=green]; +nd_499552 [label="pw_gecos", color=green]; +nd_499557 [label="pw", color=green]; +nd_499563 [label="pw_name", color=green]; +nd_499630 [label="ExprStmt", color=green]; +nd_499600 [label="%s", color=green]; +nd_499581 [label="s", color=green]; +nd_499623 [label="... = ...", color=green]; +nd_499588 [label="call to g_strdup_printf", color=green]; +nd_499612 [label="pw", color=green]; +nd_499618 [label="pw_name", color=green]; +nd_499640 [label="details", color=green]; +nd_499635 [label="call to polkit_details_insert", color=green]; +nd_499673 [label="ExprStmt", color=green]; +nd_499651 [label="user.display", color=green]; +nd_499661 [label="s", color=green]; +nd_499686 [label="s", color=green]; +nd_499679 [label="call to g_free", color=green]; +nd_499697 [label="ExprStmt", color=green]; +nd_499707 [label="details", color=green]; +nd_499702 [label="call to polkit_details_insert", color=green]; +nd_499738 [label="ExprStmt", color=green]; +nd_499717 [label="program", color=green]; +nd_499725 [label="path", color=green]; +nd_499747 [label="details", color=green]; +nd_499743 [label="call to polkit_details_insert", color=green]; +nd_501499 [label="if (...) ...", color=green]; +nd_499759 [label="command_line", color=green]; +nd_501479 [label="command_line", color=green]; +nd_501534 [label="action_id", color=green]; +nd_501529 [label="call to g_strcmp0", color=green]; +nd_501566 [label="0", color=green]; +nd_501549 [label="org.freedesktop.policykit.exec", color=green]; +nd_501569 [label="... == ...", color=green]; +nd_501807 [label="{ ... }", color=green]; +nd_501892 [label="ExprStmt", color=green]; +nd_501576 [label="if (...) ...", color=green]; +nd_501583 [label="pw", color=green]; +nd_501590 [label="pw_uid", color=green]; +nd_501607 [label="0", color=green]; +nd_501618 [label="... == ...", color=green]; +nd_501728 [label="{ ... }", color=green]; +nd_501803 [label="{ ... }", color=green]; +nd_501625 [label="ExprStmt", color=green]; +nd_501637 [label="details", color=green]; +nd_501632 [label="call to polkit_details_insert", color=green]; +nd_501648 [label="polkit.message", color=green]; +nd_501681 [label="Authentication is needed to run `$(program)' as the super user", color=green]; +nd_501735 [label="ExprStmt", color=green]; +nd_501749 [label="details", color=green]; +nd_501743 [label="call to polkit_details_insert", color=green]; +nd_501761 [label="polkit.message", color=green]; +nd_501780 [label="Authentication is needed to run `$(program)' as user $(user.display)", color=green]; +nd_501918 [label="details", color=green]; +nd_501914 [label="call to polkit_details_insert", color=green]; +nd_501973 [label="label ...:", color=green]; +nd_501931 [label="polkit.gettext_domain", color=green]; +nd_501956 [label="polkit-1", color=green]; +nd_501980 [label="ExprStmt", color=green]; +nd_502103 [label="0", color=green]; +nd_502095 [label="error", color=green]; +nd_502234 [label="... = ...", color=green]; +nd_502245 [label="ExprStmt", color=green]; +nd_502458 [label="authority", color=green]; +nd_502255 [label="result", color=green]; +nd_502577 [label="... = ...", color=green]; +nd_502449 [label="call to polkit_authority_check_authorization_sync", color=green]; +nd_502465 [label="subject", color=green]; +nd_502474 [label="action_id", color=green]; +nd_502484 [label="details", color=green]; +nd_502496 [label="POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION", color=green]; +nd_502528 [label="0", color=green]; +nd_502562 [label="error", color=green]; +nd_502571 [label="& ...", color=green]; +nd_502586 [label="if (...) ...", color=green]; +nd_502601 [label="result", color=green]; +nd_502614 [label="0", color=green]; +nd_502646 [label="... == ...", color=green]; +nd_502744 [label="{ ... }", color=green]; +nd_502755 [label="if (...) ...", color=green]; +nd_502653 [label="ExprStmt", color=green]; +nd_502680 [label="Error checking for authorization %s: %s", color=green]; +nd_502659 [label="call to g_printerr", color=green]; +nd_502735 [label="goto ...", color=green]; +nd_502701 [label="action_id", color=green]; +nd_502713 [label="error", color=green]; +nd_502724 [label="message", color=green]; +nd_502923 [label="result", color=green]; +nd_502916 [label="call to polkit_authorization_result_get_is_authorized", color=green]; +nd_502930 [label="{ ... }", color=green]; +nd_502935 [label="if (...) ...", color=green]; +nd_504366 [label="ExprStmt", color=green]; +nd_502957 [label="result", color=green]; +nd_502949 [label="call to polkit_authorization_result_get_is_challenge", color=green]; +nd_504181 [label="{ ... }", color=green]; +nd_504361 [label="{ ... }", color=green]; +nd_502962 [label="if (...) ...", color=green]; +nd_503014 [label="... && ...", color=green]; +nd_502969 [label="local_agent_handle", color=green]; +nd_502980 [label="0", color=green]; +nd_503000 [label="... == ...", color=green]; +nd_503006 [label="opt_disable_internal_agent", color=green]; +nd_504174 [label="{ ... }", color=green]; +nd_503011 [label="! ...", color=green]; +nd_504134 [label="{ ... }", color=green]; +nd_503037 [label="declaration", color=green]; +nd_503047 [label="ExprStmt", color=green]; +nd_503062 [label="0", color=green]; +nd_503052 [label="error", color=green]; +nd_503091 [label="... = ...", color=green]; +nd_503100 [label="ExprStmt", color=green]; +nd_503194 [label="0", color=green]; +nd_503107 [label="listener", color=green]; +nd_503255 [label="... = ...", color=green]; +nd_503118 [label="call to polkit_agent_text_listener_new", color=green]; +nd_503233 [label="error", color=green]; +nd_503244 [label="& ...", color=green]; +nd_503266 [label="if (...) ...", color=green]; +nd_503273 [label="listener", color=green]; +nd_503289 [label="0", color=green]; +nd_503324 [label="... == ...", color=green]; +nd_503420 [label="{ ... }", color=green]; +nd_503428 [label="ExprStmt", color=green]; +nd_503332 [label="ExprStmt", color=green]; +nd_503358 [label="Error creating textual authentication agent: %s", color=green]; +nd_503338 [label="call to g_printerr", color=green]; +nd_503393 [label="ExprStmt", color=green]; +nd_503375 [label="error", color=green]; +nd_503383 [label="message", color=green]; +nd_503406 [label="error", color=green]; +nd_503399 [label="call to g_error_free", color=green]; +nd_503413 [label="goto ...", color=green]; +nd_503477 [label="listener", color=green]; +nd_503435 [label="local_agent_handle", color=green]; +nd_503593 [label="... = ...", color=green]; +nd_503469 [label="call to polkit_agent_listener_register", color=green]; +nd_503491 [label="POLKIT_AGENT_REGISTER_FLAGS_RUN_IN_THREAD", color=green]; +nd_503516 [label="subject", color=green]; +nd_503522 [label="0", color=green]; +nd_503562 [label="0", color=green]; +nd_503587 [label="error", color=green]; +nd_503590 [label="& ...", color=green]; +nd_503596 [label="ExprStmt", color=green]; +nd_503745 [label="listener", color=green]; +nd_503742 [label="call to g_object_unref", color=green]; +nd_503754 [label="if (...) ...", color=green]; +nd_503758 [label="local_agent_handle", color=green]; +nd_503765 [label="0", color=green]; +nd_503778 [label="... == ...", color=green]; +nd_503834 [label="{ ... }", color=green]; +nd_503837 [label="ExprStmt", color=green]; +nd_503784 [label="ExprStmt", color=green]; +nd_503801 [label="Error registering local authentication agent: %s", color=green]; +nd_503789 [label="call to g_printerr", color=green]; +nd_503820 [label="ExprStmt", color=green]; +nd_503810 [label="error", color=green]; +nd_503815 [label="message", color=green]; +nd_503828 [label="error", color=green]; +nd_503823 [label="call to g_error_free", color=green]; +nd_503831 [label="goto ...", color=green]; +nd_503844 [label="result", color=green]; +nd_503840 [label="call to g_object_unref", color=green]; +nd_503854 [label="ExprStmt", color=green]; +nd_503871 [label="0", color=green]; +nd_503857 [label="result", color=green]; +nd_504120 [label="... = ...", color=green]; +nd_504131 [label="goto ...", color=green]; +nd_504143 [label="ExprStmt", color=green]; +nd_504157 [label="Error executing command as another user: No authentication agent found.", color=green]; +nd_504147 [label="call to g_printerr", color=green]; +nd_504170 [label="goto ...", color=green]; +nd_504185 [label="if (...) ...", color=green]; +nd_504196 [label="result", color=green]; +nd_504192 [label="call to polkit_authorization_result_get_dismissed", color=green]; +nd_504280 [label="{ ... }", color=green]; +nd_504353 [label="{ ... }", color=green]; +nd_504200 [label="ExprStmt", color=green]; +nd_504218 [label="4", color=green]; +nd_504210 [label="call to log_message", color=green]; +nd_504257 [label="ExprStmt", color=green]; +nd_504225 [label="0", color=green]; +nd_504233 [label="! ...", color=green]; +nd_504248 [label="Error executing command as another user: Request dismissed", color=green]; +nd_504268 [label="126", color=green]; +nd_504261 [label="ret", color=green]; +nd_504276 [label="... = ...", color=green]; +nd_504357 [label="goto ...", color=green]; +nd_504284 [label="ExprStmt", color=green]; +nd_504296 [label="4", color=green]; +nd_504288 [label="call to log_message", color=green]; +nd_504333 [label="ExprStmt", color=green]; +nd_504302 [label="0", color=green]; +nd_504309 [label="! ...", color=green]; +nd_504325 [label="Error executing command as another user: Not authorized", color=green]; +nd_504344 [label="This incident has been reported.", color=green]; +nd_504336 [label="call to g_printerr", color=green]; +nd_504374 [label="saved_env", color=green]; +nd_504370 [label="call to g_ptr_array_add", color=green]; +nd_504407 [label="if (...) ...", color=green]; +nd_504386 [label="PATH", color=green]; +nd_504377 [label="call to g_strdup", color=green]; +nd_504412 [label="pw", color=green]; +nd_504416 [label="pw_uid", color=green]; +nd_504429 [label="0", color=green]; +nd_504440 [label="... != ...", color=green]; +nd_504446 [label="ExprStmt", color=green]; +nd_504607 [label="ExprStmt", color=green]; +nd_504473 [label="/usr/bin:/bin:/usr/sbin:/sbin:%s/bin", color=green]; +nd_504454 [label="s", color=green]; +nd_504495 [label="... = ...", color=green]; +nd_504461 [label="call to g_strdup_printf", color=green]; +nd_504488 [label="pw", color=green]; +nd_504492 [label="pw_dir", color=green]; +nd_504649 [label="ExprStmt", color=green]; +nd_504628 [label="/usr/sbin:/usr/bin:/sbin:/bin:%s/bin", color=green]; +nd_504611 [label="s", color=green]; +nd_504643 [label="... = ...", color=green]; +nd_504617 [label="call to g_strdup_printf", color=green]; +nd_504636 [label="pw", color=green]; +nd_504640 [label="pw_dir", color=green]; +nd_504656 [label="saved_env", color=green]; +nd_504652 [label="call to g_ptr_array_add", color=green]; +nd_504831 [label="ExprStmt", color=green]; +nd_504826 [label="s", color=green]; +nd_504839 [label="saved_env", color=green]; +nd_504835 [label="call to g_ptr_array_add", color=green]; +nd_504967 [label="ExprStmt", color=green]; +nd_504954 [label="LOGNAME", color=green]; +nd_504842 [label="call to g_strdup", color=green]; +nd_504976 [label="saved_env", color=green]; +nd_504972 [label="call to g_ptr_array_add", color=green]; +nd_505003 [label="ExprStmt", color=green]; +nd_504984 [label="pw", color=green]; +nd_504981 [label="call to g_strdup", color=green]; +nd_504989 [label="pw_name", color=green]; +nd_505011 [label="saved_env", color=green]; +nd_505007 [label="call to g_ptr_array_add", color=green]; +nd_505036 [label="ExprStmt", color=green]; +nd_505025 [label="USER", color=green]; +nd_505015 [label="call to g_strdup", color=green]; +nd_505044 [label="saved_env", color=green]; +nd_505041 [label="call to g_ptr_array_add", color=green]; +nd_505071 [label="ExprStmt", color=green]; +nd_505053 [label="pw", color=green]; +nd_505049 [label="call to g_strdup", color=green]; +nd_505058 [label="pw_name", color=green]; +nd_505080 [label="saved_env", color=green]; +nd_505075 [label="call to g_ptr_array_add", color=green]; +nd_505104 [label="ExprStmt", color=green]; +nd_505092 [label="HOME", color=green]; +nd_505083 [label="call to g_strdup", color=green]; +nd_505112 [label="saved_env", color=green]; +nd_505108 [label="call to g_ptr_array_add", color=green]; +nd_505138 [label="ExprStmt", color=green]; +nd_505121 [label="pw", color=green]; +nd_505117 [label="call to g_strdup", color=green]; +nd_505125 [label="pw_dir", color=green]; +nd_505155 [label="%d", color=green]; +nd_505143 [label="s", color=green]; +nd_505167 [label="... = ...", color=green]; +nd_505146 [label="call to g_strdup_printf", color=green]; +nd_505163 [label="call to getuid", color=green]; +nd_505172 [label="ExprStmt", color=green]; +nd_505180 [label="saved_env", color=green]; +nd_505176 [label="call to g_ptr_array_add", color=green]; +nd_505206 [label="ExprStmt", color=green]; +nd_505193 [label="PKEXEC_UID", color=green]; +nd_505184 [label="call to g_strdup", color=green]; +nd_505214 [label="saved_env", color=green]; +nd_505210 [label="call to g_ptr_array_add", color=green]; +nd_505226 [label="for(...;...;...) ...", color=green]; +nd_505219 [label="s", color=green]; +nd_505504 [label="ExprStmt", color=green]; +nd_505241 [label="n", color=green]; +nd_505246 [label="saved_env", color=green]; +nd_505249 [label="len", color=green]; +nd_505259 [label="1", color=green]; +nd_505267 [label="... - ...", color=green]; +nd_505271 [label="... < ...", color=green]; +nd_505501 [label="{ ... }", color=green]; +nd_505540 [label="if (...) ...", color=green]; +nd_505277 [label="saved_env", color=green]; +nd_505281 [label="pdata", color=green]; +nd_505284 [label="n", color=green]; +nd_505287 [label="access to array", color=green]; +nd_505335 [label="declaration", color=green]; +nd_505292 [label="initializer for key", color=green]; +nd_505300 [label="saved_env", color=green]; +nd_505303 [label="pdata", color=green]; +nd_505306 [label="n", color=green]; +nd_505312 [label="1", color=green]; +nd_505318 [label="... + ...", color=green]; +nd_505321 [label="access to array", color=green]; +nd_505338 [label="if (...) ...", color=green]; +nd_505326 [label="initializer for value", color=green]; +nd_505332 [label="declaration", color=green]; +nd_505399 [label="... && ...", color=green]; +nd_505341 [label="allow_gui", color=green]; +nd_505344 [label="! ...", color=green]; +nd_505393 [label="... || ...", color=green]; +nd_505405 [label="if (...) ...", color=green]; +nd_505347 [label="call to strcmp", color=green]; +nd_505365 [label="0", color=green]; +nd_505350 [label="key", color=green]; +nd_505356 [label="DISPLAY", color=green]; +nd_505367 [label="... == ...", color=green]; +nd_505373 [label="key", color=green]; +nd_505402 [label="continue;", color=green]; +nd_505370 [label="call to strcmp", color=green]; +nd_505388 [label="0", color=green]; +nd_505379 [label="XAUTHORITY", color=green]; +nd_505390 [label="... == ...", color=green]; +nd_505498 [label="label ...:", color=green]; +nd_505411 [label="key", color=green]; +nd_505408 [label="call to g_setenv", color=green]; +nd_505434 [label="! ...", color=green]; +nd_505414 [label="value", color=green]; +nd_505420 [label="0", color=green]; +nd_505426 [label="! ...", color=green]; +nd_505489 [label="{ ... }", color=green]; +nd_505438 [label="ExprStmt", color=green]; +nd_505451 [label="Error setting environment variable %s to '%s': %s", color=green]; +nd_505442 [label="call to g_printerr", color=green]; +nd_505485 [label="goto ...", color=green]; +nd_505462 [label="key", color=green]; +nd_505466 [label="value", color=green]; +nd_505474 [label="call to __errno_location", color=green]; +nd_505470 [label="call to g_strerror", color=green]; +nd_505479 [label="* ...", color=green]; +nd_505494 [label="{ ... }", color=green]; +nd_505525 [label="n", color=green]; +nd_505515 [label="0", color=green]; +nd_505508 [label="n", color=green]; +nd_505522 [label="... = ...", color=green]; +nd_505531 [label="2", color=green]; +nd_505537 [label="... += ...", color=green]; +nd_505557 [label="set_close_on_exec", color=green]; +nd_505552 [label="call to fdwalk", color=green]; +nd_505581 [label="! ...", color=green]; +nd_505566 [label="3", color=green]; +nd_505602 [label="{ ... }", color=green]; +nd_505605 [label="if (...) ...", color=green]; +nd_505584 [label="ExprStmt", color=green]; +nd_505593 [label="Error setting close-on-exec for file desriptors", color=green]; +nd_505587 [label="call to g_printerr", color=green]; +nd_505599 [label="goto ...", color=green]; +nd_505611 [label="pw", color=green]; +nd_505614 [label="pw_uid", color=green]; +nd_505620 [label="0", color=green]; +nd_505626 [label="... != ...", color=green]; +nd_505737 [label="{ ... }", color=green]; +nd_505742 [label="if (...) ...", color=green]; +nd_505629 [label="ExprStmt", color=green]; +nd_505640 [label="0", color=green]; +nd_505634 [label="call to setreuid", color=green]; +nd_505655 [label="if (...) ...", color=green]; +nd_505649 [label="0", color=green]; +nd_505694 [label="... || ...", color=green]; +nd_505658 [label="call to geteuid", color=green]; +nd_505664 [label="0", color=green]; +nd_505670 [label="... != ...", color=green]; +nd_505676 [label="call to getuid", color=green]; +nd_505732 [label="{ ... }", color=green]; +nd_505682 [label="0", color=green]; +nd_505688 [label="... != ...", color=green]; +nd_505698 [label="ExprStmt", color=green]; +nd_505709 [label="Error becoming uid 0: %s", color=green]; +nd_505701 [label="call to g_printerr", color=green]; +nd_505729 [label="goto ...", color=green]; +nd_505720 [label="call to __errno_location", color=green]; +nd_505717 [label="call to g_strerror", color=green]; +nd_505724 [label="* ...", color=green]; +nd_505759 [label="pw", color=green]; +nd_505754 [label="call to open_session", color=green]; +nd_505784 [label="! ...", color=green]; +nd_505763 [label="pw_name", color=green]; +nd_505772 [label="pw", color=green]; +nd_505778 [label="pw_uid", color=green]; +nd_505795 [label="{ ... }", color=green]; +nd_505802 [label="if (...) ...", color=green]; +nd_505790 [label="goto ...", color=green]; +nd_505841 [label="0", color=green]; +nd_505831 [label="call to setgroups", color=green]; +nd_505878 [label="0", color=green]; +nd_505854 [label="0", color=green]; +nd_505881 [label="... != ...", color=green]; +nd_505929 [label="{ ... }", color=green]; +nd_505933 [label="if (...) ...", color=green]; +nd_505886 [label="ExprStmt", color=green]; +nd_505901 [label="Error setting groups: %s", color=green]; +nd_505891 [label="call to g_printerr", color=green]; +nd_505925 [label="goto ...", color=green]; +nd_505915 [label="call to __errno_location", color=green]; +nd_505910 [label="call to g_strerror", color=green]; +nd_505921 [label="* ...", color=green]; +nd_505948 [label="pw", color=green]; +nd_505945 [label="call to initgroups", color=green]; +nd_505971 [label="0", color=green]; +nd_505951 [label="pw_name", color=green]; +nd_505959 [label="pw", color=green]; +nd_505963 [label="pw_gid", color=green]; +nd_505973 [label="... != ...", color=green]; +nd_506029 [label="{ ... }", color=green]; +nd_506032 [label="ExprStmt", color=green]; +nd_505977 [label="ExprStmt", color=green]; +nd_505990 [label="Error initializing groups for %s: %s", color=green]; +nd_505981 [label="call to g_printerr", color=green]; +nd_506025 [label="goto ...", color=green]; +nd_505999 [label="pw", color=green]; +nd_506003 [label="pw_name", color=green]; +nd_506013 [label="call to __errno_location", color=green]; +nd_506009 [label="call to g_strerror", color=green]; +nd_506018 [label="* ...", color=green]; +nd_506046 [label="pw", color=green]; +nd_506041 [label="call to setregid", color=green]; +nd_506066 [label="ExprStmt", color=green]; +nd_506051 [label="pw_gid", color=green]; +nd_506056 [label="pw", color=green]; +nd_506061 [label="pw_gid", color=green]; +nd_506076 [label="pw", color=green]; +nd_506071 [label="call to setreuid", color=green]; +nd_506093 [label="if (...) ...", color=green]; +nd_506080 [label="pw_uid", color=green]; +nd_506084 [label="pw", color=green]; +nd_506088 [label="pw_uid", color=green]; +nd_506220 [label="... || ...", color=green]; +nd_506102 [label="call to geteuid", color=green]; +nd_506107 [label="pw", color=green]; +nd_506112 [label="pw_uid", color=green]; +nd_506117 [label="... != ...", color=green]; +nd_506126 [label="call to getuid", color=green]; +nd_506292 [label="{ ... }", color=green]; +nd_506131 [label="pw", color=green]; +nd_506136 [label="pw_uid", color=green]; +nd_506141 [label="... != ...", color=green]; +nd_506162 [label="call to getegid", color=green]; +nd_506150 [label="... || ...", color=green]; +nd_506167 [label="pw", color=green]; +nd_506172 [label="pw_gid", color=green]; +nd_506177 [label="... != ...", color=green]; +nd_506193 [label="call to getgid", color=green]; +nd_506186 [label="... || ...", color=green]; +nd_506198 [label="pw", color=green]; +nd_506202 [label="pw_gid", color=green]; +nd_506208 [label="... != ...", color=green]; +nd_506298 [label="if (...) ...", color=green]; +nd_506224 [label="ExprStmt", color=green]; +nd_506242 [label="Error becoming real+effective uid %d and gid %d: %s", color=green]; +nd_506228 [label="call to g_printerr", color=green]; +nd_506288 [label="goto ...", color=green]; +nd_506254 [label="pw", color=green]; +nd_506259 [label="pw_uid", color=green]; +nd_506263 [label="pw", color=green]; +nd_506267 [label="pw_gid", color=green]; +nd_506276 [label="call to __errno_location", color=green]; +nd_506272 [label="call to g_strerror", color=green]; +nd_506281 [label="* ...", color=green]; +nd_506315 [label="pw", color=green]; +nd_506312 [label="call to chdir", color=green]; +nd_506353 [label="0", color=green]; +nd_506320 [label="pw_dir", color=green]; +nd_506355 [label="... != ...", color=green]; +nd_506441 [label="{ ... }", color=green]; +nd_506448 [label="ExprStmt", color=green]; +nd_506364 [label="ExprStmt", color=green]; +nd_506389 [label="Error changing to home directory %s: %s", color=green]; +nd_506367 [label="call to g_printerr", color=green]; +nd_506437 [label="goto ...", color=green]; +nd_506401 [label="pw", color=green]; +nd_506408 [label="pw_dir", color=green]; +nd_506424 [label="call to __errno_location", color=green]; +nd_506420 [label="call to g_strerror", color=green]; +nd_506428 [label="* ...", color=green]; +nd_506492 [label="5", color=green]; +nd_506474 [label="call to log_message", color=green]; +nd_506538 [label="if (...) ...", color=green]; +nd_506505 [label="0", color=green]; +nd_506526 [label="Executing command", color=green]; +nd_506570 [label="path", color=green]; +nd_506565 [label="call to execv", color=green]; +nd_506592 [label="0", color=green]; +nd_506577 [label="exec_argv", color=green]; +nd_506595 [label="... != ...", color=green]; +nd_506654 [label="{ ... }", color=green]; +nd_506659 [label="do (...) ...", color=green]; +nd_506599 [label="ExprStmt", color=green]; +nd_506620 [label="Error executing %s: %s", color=green]; +nd_506605 [label="call to g_printerr", color=green]; +nd_506650 [label="goto ...", color=green]; +nd_506629 [label="path", color=green]; +nd_506638 [label="call to __errno_location", color=green]; +nd_506635 [label="call to g_strerror", color=green]; +nd_506643 [label="* ...", color=green]; +nd_506897 [label="{ ... }", color=green]; +nd_506701 [label="0"]; +nd_506703 [label="ExprStmt", color=green]; +nd_506723 [label="0", color=green]; +nd_506793 [label="../src/programs/pkexec.c", color=green]; +nd_506859 [label="1010", color=green]; +nd_506863 [label="__func__", color=green]; +nd_506880 [label="0", color=green]; +nd_506716 [label="call to g_assertion_message_expr", color=green]; +nd_506905 [label="if (...) ...", color=green]; +nd_506981 [label="local_agent_handle", color=green]; +nd_506995 [label="0", color=green]; +nd_507013 [label="... != ...", color=green]; +nd_507027 [label="ExprStmt", color=green]; +nd_507054 [label="if (...) ...", color=green]; +nd_507047 [label="local_agent_handle", color=green]; +nd_507042 [label="call to polkit_agent_listener_unregister", color=green]; +nd_507072 [label="result", color=green]; +nd_507152 [label="0", color=green]; +nd_507182 [label="... != ...", color=green]; +nd_507276 [label="ExprStmt", color=green]; +nd_507304 [label="ExprStmt", color=green]; +nd_507289 [label="result", color=green]; +nd_507283 [label="call to g_object_unref", color=green]; +nd_507315 [label="action_id", color=green]; +nd_507310 [label="call to g_free", color=green]; +nd_507322 [label="if (...) ...", color=green]; +nd_508059 [label="details", color=green]; +nd_508074 [label="0", color=green]; +nd_508188 [label="... != ...", color=green]; +nd_508194 [label="ExprStmt", color=green]; +nd_508213 [label="if (...) ...", color=green]; +nd_508203 [label="details", color=green]; +nd_508199 [label="call to g_object_unref", color=green]; +nd_508223 [label="subject", color=green]; +nd_508253 [label="0", color=green]; +nd_508274 [label="... != ...", color=green]; +nd_508281 [label="ExprStmt", color=green]; +nd_508329 [label="if (...) ...", color=green]; +nd_508312 [label="subject", color=green]; +nd_508286 [label="call to g_object_unref", color=green]; +nd_508347 [label="authority", color=green]; +nd_508432 [label="0", color=green]; +nd_508455 [label="... != ...", color=green]; +nd_508460 [label="ExprStmt", color=green]; +nd_508479 [label="if (...) ...", color=green]; +nd_508471 [label="authority", color=green]; +nd_508463 [label="call to g_object_unref", color=green]; +nd_508495 [label="saved_env", color=green]; +nd_508558 [label="0", color=green]; +nd_508698 [label="... != ...", color=green]; +nd_509084 [label="{ ... }", color=green]; +nd_509089 [label="ExprStmt", color=green]; +nd_508710 [label="ExprStmt", color=green]; +nd_508736 [label="saved_env", color=green]; +nd_508728 [label="call to g_ptr_array_foreach", color=green]; +nd_508783 [label="ExprStmt", color=green]; +nd_508743 [label="g_free", color=green]; +nd_508767 [label="0", color=green]; +nd_508995 [label="saved_env", color=green]; +nd_508792 [label="call to g_ptr_array_free", color=green]; +nd_509065 [label="0", color=green]; +nd_509076 [label="! ...", color=green]; +nd_509097 [label="original_cwd", color=green]; +nd_509094 [label="call to g_free", color=green]; +nd_509119 [label="ExprStmt", color=green]; +nd_509127 [label="path", color=green]; +nd_509124 [label="call to g_free", color=green]; +nd_509134 [label="ExprStmt", color=green]; +nd_509146 [label="command_line", color=green]; +nd_509139 [label="call to g_free", color=green]; +nd_509151 [label="ExprStmt", color=green]; +nd_509157 [label="opt_user", color=green]; +nd_509154 [label="call to g_free", color=green]; +nd_509163 [label="ExprStmt", color=green]; +nd_509171 [label="original_user_name", color=green]; +nd_509168 [label="call to g_free", color=green]; +nd_509177 [label="return ...", color=green]; +nd_509180 [label="ret", color=green]; +nd_483685 [label="main", color=green]; +nd_509185 [label="{ ... }"]; +nd_483723 -> nd_483743 [label=""]; +nd_483743 -> nd_483757 [label=""]; +nd_483757 -> nd_483767 [label=""]; +nd_483767 -> nd_483775 [label=""]; +nd_483775 -> nd_483794 [label=""]; +nd_483794 -> nd_483806 [label=""]; +nd_483806 -> nd_483821 [label=""]; +nd_483821 -> nd_483838 [label=""]; +nd_483838 -> nd_483856 [label=""]; +nd_483856 -> nd_484271 [label=""]; +nd_484271 -> nd_484285 [label=""]; +nd_484285 -> nd_484339 [label=""]; +nd_484339 -> nd_484367 [label=""]; +nd_484367 -> nd_484410 [label=""]; +nd_484410 -> nd_485032 [label=""]; +nd_485032 -> nd_485040 [label=""]; +nd_485040 -> nd_485072 [label=""]; +nd_485072 -> nd_485089 [label=""]; +nd_485089 -> nd_486127 [label=""]; +nd_486127 -> nd_485657 [label=""]; +nd_485121 -> nd_486134 [label=""]; +nd_486134 -> nd_486151 [label=""]; +nd_485657 -> nd_485678 [label=""]; +nd_485678 -> nd_485697 [label=""]; +nd_485697 -> nd_485708 [label=""]; +nd_485708 -> nd_485732 [label=""]; +nd_485732 -> nd_485749 [label=""]; +nd_485749 -> nd_485759 [label=""]; +nd_485759 -> nd_485786 [label=""]; +nd_485786 -> nd_485810 [label=""]; +nd_485810 -> nd_485825 [label=""]; +nd_485825 -> nd_485853 [label=""]; +nd_485853 -> nd_485869 [label=""]; +nd_485869 -> nd_485889 [label=""]; +nd_485889 -> nd_485915 [label=""]; +nd_485915 -> nd_485969 [label=""]; +nd_485969 -> nd_485986 [label=""]; +nd_485986 -> nd_485121 [label=""]; +nd_486151 -> nd_486176 [label=""]; +nd_486176 -> nd_486184 [label=""]; +nd_486184 -> nd_486193 [label=""]; +nd_486193 -> nd_486210 [label=""]; +nd_486210 -> nd_486204 [label=""]; +nd_486204 -> nd_486220 [label=""]; +nd_486220 -> nd_486227 [label=""]; +nd_486227 -> nd_486493 [label=""]; +nd_486493 -> nd_486237 [label=""]; +nd_486237 -> nd_486511 [label=""]; +nd_486511 -> nd_486514 [label=""]; +nd_486514 -> nd_486555 [label=""]; +nd_486555 -> nd_486549 [label=""]; +nd_486549 -> nd_486573 [label=""]; +nd_486573 -> nd_486577 [label=""]; +nd_486577 -> nd_486595 [label=""]; +nd_486595 -> nd_486585 [label=""]; +nd_486585 -> nd_486621 [label=""]; +nd_486621 -> nd_486626 [label=""]; +nd_486626 -> nd_486670 [label=""]; +nd_486670 -> nd_486664 [label=""]; +nd_486664 -> nd_486683 [label=""]; +nd_486683 -> nd_486687 [label=""]; +nd_486687 -> nd_486714 [label=""]; +nd_486714 -> nd_486693 [label=""]; +nd_486693 -> nd_486739 [label=""]; +nd_486739 -> nd_486742 [label=""]; +nd_486742 -> nd_487127 [label=""]; +nd_487127 -> nd_487116 [label=""]; +nd_487116 -> nd_487148 [label=""]; +nd_487148 -> nd_487151 [label=""]; +nd_487151 -> nd_487168 [label=""]; +nd_487168 -> nd_487158 [label=""]; +nd_487158 -> nd_487199 [label=""]; +nd_487199 -> nd_487210 [label=""]; +nd_487210 -> nd_487267 [label=""]; +nd_487267 -> nd_487222 [label=""]; +nd_487222 -> nd_487291 [label=""]; +nd_487291 -> nd_487297 [label=""]; +nd_487297 -> nd_487368 [label=""]; +nd_487368 -> nd_487356 [label=""]; +nd_487356 -> nd_487422 [label=""]; +nd_487422 -> nd_487425 [label=""]; +nd_487425 -> nd_487594 [label=""]; +nd_487594 -> nd_487434 [label=""]; +nd_487434 -> nd_487634 [label=""]; +nd_487634 -> nd_487640 [label=""]; +nd_487640 -> nd_487707 [label=""]; +nd_487707 -> nd_487649 [label=""]; +nd_487649 -> nd_487735 [label=""]; +nd_487735 -> nd_487738 [label=""]; +nd_487738 -> nd_487747 [label=""]; +nd_487747 -> nd_487759 [label=""]; +nd_487741 -> nd_487821 [label=""]; +nd_487821 -> nd_487829 [label=""]; +nd_487759 -> nd_487819 [label=""]; +nd_487819 -> nd_487741 [label=""]; +nd_487829 -> nd_487937 [label=""]; +nd_487937 -> nd_487944 [label=""]; +nd_487944 -> nd_488101 [label=""]; +nd_487944 -> nd_488107 [label=""]; +nd_488101 -> nd_488021 [label=""]; +nd_488107 -> nd_488203 [label=""]; +nd_488021 -> nd_488079 [label=""]; +nd_488079 -> nd_488031 [label=""]; +nd_488031 -> nd_488093 [label=""]; +nd_488093 -> nd_506901 [label=""]; +nd_506901 -> nd_506905 [label=""]; +nd_488203 -> nd_488155 [label=""]; +nd_488151 -> nd_488206 [label=""]; +nd_488206 -> nd_488210 [label=""]; +nd_488155 -> nd_488151 [label=""]; +nd_488210 -> nd_488240 [label=""]; +nd_488240 -> nd_488246 [label=""]; +nd_488246 -> nd_488258 [label=""]; +nd_488258 -> nd_488385 [label=""]; +nd_488258 -> nd_488388 [label=""]; +nd_488385 -> nd_488261 [label=""]; +nd_488388 -> nd_488478 [label=""]; +nd_488261 -> nd_488298 [label=""]; +nd_488298 -> nd_488264 [label=""]; +nd_488264 -> nd_488316 [label=""]; +nd_488316 -> nd_506901 [label=""]; +nd_488478 -> nd_488399 [label=""]; +nd_488399 -> nd_488484 [label=""]; +nd_488484 -> nd_488502 [label=""]; +nd_488502 -> nd_488550 [label=""]; +nd_488550 -> nd_488743 [label=""]; +nd_488550 -> nd_488748 [label=""]; +nd_488743 -> nd_488555 [label=""]; +nd_488748 -> nd_488762 [label=""]; +nd_488555 -> nd_488595 [label=""]; +nd_488595 -> nd_488719 [label=""]; +nd_488566 -> nd_488737 [label=""]; +nd_488737 -> nd_506901 [label=""]; +nd_488719 -> nd_488726 [label=""]; +nd_488616 -> nd_488566 [label=""]; +nd_488726 -> nd_488616 [label=""]; +nd_488762 -> nd_488755 [label=""]; +nd_488755 -> nd_488769 [label=""]; +nd_488769 -> nd_488772 [label=""]; +nd_488772 -> nd_488784 [label=""]; +nd_488784 -> nd_488778 [label=""]; +nd_488778 -> nd_488790 [label=""]; +nd_488790 -> nd_488793 [label=""]; +nd_488793 -> nd_488843 [label=""]; +nd_488843 -> nd_488799 [label=""]; +nd_488799 -> nd_488850 [label=""]; +nd_488850 -> nd_490029 [label=""]; +nd_490029 -> nd_488855 [label=""]; +nd_488855 -> nd_489982 [label=""]; +nd_489982 -> nd_489996 [label=""]; +nd_488955 -> nd_488958 [label=""]; +nd_488958 -> nd_488967 [label=""]; +nd_488967 -> nd_489974 [label=""]; +nd_488967 -> nd_490022 [label=""]; +nd_489974 -> nd_488970 [label=""]; +nd_490022 -> nd_490032 [label=""]; +nd_488970 -> nd_489164 [label=""]; +nd_489164 -> nd_489174 [label=""]; +nd_489160 -> nd_489284 [label=""]; +nd_489284 -> nd_489287 [label=""]; +nd_489174 -> nd_489259 [label=""]; +nd_489259 -> nd_489267 [label=""]; +nd_489267 -> nd_489160 [label=""]; +nd_489287 -> nd_489333 [label=""]; +nd_489287 -> nd_489339 [label=""]; +nd_489333 -> nd_489296 [label=""]; +nd_489339 -> nd_489353 [label=""]; +nd_489296 -> nd_489308 [label=""]; +nd_489308 -> nd_489315 [label=""]; +nd_489301 -> nd_489327 [label=""]; +nd_489327 -> nd_490011 [label=""]; +nd_489315 -> nd_489301 [label=""]; +nd_490011 -> nd_490016 [label=""]; +nd_489353 -> nd_489359 [label=""]; +nd_489348 -> nd_489383 [label=""]; +nd_489383 -> nd_489386 [label=""]; +nd_489359 -> nd_489363 [label=""]; +nd_489363 -> nd_489374 [label=""]; +nd_489374 -> nd_489348 [label=""]; +nd_489386 -> nd_489431 [label=""]; +nd_489386 -> nd_489436 [label=""]; +nd_489431 -> nd_489393 [label=""]; +nd_489436 -> nd_489603 [label=""]; +nd_489393 -> nd_489409 [label=""]; +nd_489409 -> nd_489418 [label=""]; +nd_489399 -> nd_489428 [label=""]; +nd_489428 -> nd_490011 [label=""]; +nd_489418 -> nd_489399 [label=""]; +nd_489603 -> nd_489444 [label=""]; +nd_489440 -> nd_489500 [label=""]; +nd_489500 -> nd_489503 [label=""]; +nd_489444 -> nd_489447 [label=""]; +nd_489447 -> nd_489451 [label=""]; +nd_489451 -> nd_489479 [label=""]; +nd_489479 -> nd_489440 [label=""]; +nd_489503 -> nd_489515 [label=""]; +nd_489503 -> nd_489832 [label=""]; +nd_489515 -> nd_489523 [label=""]; +nd_489832 -> nd_489607 [label=""]; +nd_489509 -> nd_489594 [label=""]; +nd_489594 -> nd_489597 [label=""]; +nd_489523 -> nd_489528 [label=""]; +nd_489528 -> nd_489543 [label=""]; +nd_489543 -> nd_489509 [label=""]; +nd_489597 -> nd_489832 [label=""]; +nd_489597 -> nd_489837 [label=""]; +nd_489837 -> nd_489849 [label=""]; +nd_489607 -> nd_489611 [label=""]; +nd_489611 -> nd_489614 [label=""]; +nd_489614 -> nd_489620 [label=""]; +nd_489620 -> nd_489625 [label=""]; +nd_489625 -> nd_489633 [label=""]; +nd_489633 -> nd_489642 [label=""]; +nd_489642 -> nd_489694 [label=""]; +nd_489642 -> nd_489700 [label=""]; +nd_489694 -> nd_489650 [label=""]; +nd_489700 -> nd_489703 [label=""]; +nd_489650 -> nd_489678 [label=""]; +nd_489678 -> nd_489684 [label=""]; +nd_489673 -> nd_489689 [label=""]; +nd_489689 -> nd_506901 [label=""]; +nd_489684 -> nd_489673 [label=""]; +nd_489703 -> nd_489709 [label=""]; +nd_489709 -> nd_489730 [label=""]; +nd_489730 -> nd_489784 [label=""]; +nd_489730 -> nd_489790 [label=""]; +nd_489784 -> nd_489737 [label=""]; +nd_489790 -> nd_489806 [label=""]; +nd_489737 -> nd_489768 [label=""]; +nd_489768 -> nd_489741 [label=""]; +nd_489741 -> nd_489781 [label=""]; +nd_489781 -> nd_506901 [label=""]; +nd_489806 -> nd_489811 [label=""]; +nd_489796 -> nd_489825 [label=""]; +nd_489825 -> nd_490011 [label=""]; +nd_489802 -> nd_489796 [label=""]; +nd_489811 -> nd_489817 [label=""]; +nd_489817 -> nd_489802 [label=""]; +nd_489849 -> nd_489853 [label=""]; +nd_489842 -> nd_489902 [label=""]; +nd_489902 -> nd_489906 [label=""]; +nd_489853 -> nd_489858 [label=""]; +nd_489858 -> nd_489884 [label=""]; +nd_489884 -> nd_489842 [label=""]; +nd_489906 -> nd_489958 [label=""]; +nd_489906 -> nd_489969 [label=""]; +nd_489958 -> nd_489911 [label=""]; +nd_489969 -> nd_489964 [label=""]; +nd_489911 -> nd_489927 [label=""]; +nd_489927 -> nd_489938 [label=""]; +nd_489917 -> nd_489953 [label=""]; +nd_489953 -> nd_490011 [label=""]; +nd_489938 -> nd_489917 [label=""]; +nd_489964 -> nd_490022 [label=""]; +nd_489996 -> nd_489987 [label=""]; +nd_489987 -> nd_490006 [label=""]; +nd_490006 -> nd_488955 [label=""]; +nd_490016 -> nd_488955 [label=""]; +nd_490032 -> nd_490042 [label=""]; +nd_490042 -> nd_490158 [label=""]; +nd_490042 -> nd_490166 [label=""]; +nd_490158 -> nd_490088 [label=""]; +nd_490166 -> nd_490175 [label=""]; +nd_490088 -> nd_490104 [label=""]; +nd_490104 -> nd_490109 [label=""]; +nd_490097 -> nd_490114 [label=""]; +nd_490114 -> nd_490131 [label=""]; +nd_490109 -> nd_490097 [label=""]; +nd_490131 -> nd_490121 [label=""]; +nd_490121 -> nd_490145 [label=""]; +nd_490145 -> nd_490151 [label=""]; +nd_490151 -> nd_506901 [label=""]; +nd_490175 -> nd_490287 [label=""]; +nd_490175 -> nd_490295 [label=""]; +nd_490287 -> nd_490183 [label=""]; +nd_490295 -> nd_490306 [label=""]; +nd_490183 -> nd_490221 [label=""]; +nd_490221 -> nd_490240 [label=""]; +nd_490196 -> nd_490249 [label=""]; +nd_490249 -> nd_490266 [label=""]; +nd_490240 -> nd_490196 [label=""]; +nd_490266 -> nd_490254 [label=""]; +nd_490254 -> nd_490275 [label=""]; +nd_490275 -> nd_490282 [label=""]; +nd_490282 -> nd_506901 [label=""]; +nd_490306 -> nd_490317 [label=""]; +nd_490317 -> nd_490345 [label=""]; +nd_490345 -> nd_490351 [label=""]; +nd_490345 -> nd_490396 [label=""]; +nd_490351 -> nd_490375 [label=""]; +nd_490396 -> nd_490480 [label=""]; +nd_490375 -> nd_490363 [label=""]; +nd_490358 -> nd_490389 [label=""]; +nd_490389 -> nd_490396 [label=""]; +nd_490363 -> nd_490358 [label=""]; +nd_490480 -> nd_490495 [label=""]; +nd_490405 -> nd_490580 [label=""]; +nd_490580 -> nd_490585 [label=""]; +nd_490472 -> nd_490405 [label=""]; +nd_490495 -> nd_490505 [label=""]; +nd_490505 -> nd_490513 [label=""]; +nd_490513 -> nd_490533 [label=""]; +nd_490533 -> nd_490525 [label=""]; +nd_490525 -> nd_490564 [label=""]; +nd_490564 -> nd_490575 [label=""]; +nd_490575 -> nd_490472 [label=""]; +nd_490585 -> nd_490750 [label=""]; +nd_490750 -> nd_490650 [label=""]; +nd_490650 -> nd_490661 [label=""]; +nd_490661 -> nd_490664 [label=""]; +nd_490664 -> nd_490668 [label=""]; +nd_490664 -> nd_490792 [label=""]; +nd_490668 -> nd_490727 [label=""]; +nd_490792 -> nd_490795 [label=""]; +nd_490727 -> nd_490747 [label=""]; +nd_490747 -> nd_490789 [label=""]; +nd_490747 -> nd_490792 [label=""]; +nd_490789 -> nd_490755 [label=""]; +nd_490755 -> nd_490770 [label=""]; +nd_490770 -> nd_490781 [label=""]; +nd_490760 -> nd_490785 [label=""]; +nd_490785 -> nd_506901 [label=""]; +nd_490781 -> nd_490760 [label=""]; +nd_490795 -> nd_490804 [label=""]; +nd_490804 -> nd_490903 [label=""]; +nd_490903 -> nd_491081 [label=""]; +nd_490903 -> nd_491088 [label=""]; +nd_491081 -> nd_490906 [label=""]; +nd_491088 -> nd_491997 [label=""]; +nd_490906 -> nd_490923 [label=""]; +nd_490923 -> nd_490957 [label=""]; +nd_490912 -> nd_491056 [label=""]; +nd_491056 -> nd_506901 [label=""]; +nd_490957 -> nd_490966 [label=""]; +nd_490966 -> nd_490962 [label=""]; +nd_490962 -> nd_490912 [label=""]; +nd_491997 -> nd_491530 [label=""]; +nd_491524 -> nd_492008 [label=""]; +nd_492008 -> nd_492032 [label=""]; +nd_491530 -> nd_491685 [label=""]; +nd_491685 -> nd_491575 [label=""]; +nd_491553 -> nd_491788 [label=""]; +nd_491553 -> nd_491795 [label=""]; +nd_491788 -> nd_491524 [label=""]; +nd_491795 -> nd_491836 [label=""]; +nd_491559 -> nd_491701 [label=""]; +nd_491701 -> nd_491553 [label=""]; +nd_491575 -> nd_491582 [label=""]; +nd_491582 -> nd_491586 [label=""]; +nd_491586 -> nd_491595 [label=""]; +nd_491595 -> nd_491599 [label=""]; +nd_491599 -> nd_491613 [label=""]; +nd_491613 -> nd_491646 [label=""]; +nd_491646 -> nd_491652 [label=""]; +nd_491646 -> nd_491665 [label=""]; +nd_491652 -> nd_491660 [label=""]; +nd_491665 -> nd_491671 [label=""]; +nd_491660 -> nd_491655 [label=""]; +nd_491655 -> nd_491662 [label=""]; +nd_491662 -> nd_491678 [label=""]; +nd_491678 -> nd_491680 [label=""]; +nd_491671 -> nd_491667 [label=""]; +nd_491667 -> nd_491673 [label=""]; +nd_491673 -> nd_491678 [label=""]; +nd_491680 -> nd_491559 [label=""]; +nd_491836 -> nd_491885 [label=""]; +nd_491885 -> nd_491907 [label=""]; +nd_491907 -> nd_491944 [label=""]; +nd_491944 -> nd_491980 [label=""]; +nd_491980 -> nd_491812 [label=""]; +nd_492032 -> nd_492044 [label=""]; +nd_492014 -> nd_492064 [label=""]; +nd_492064 -> nd_492073 [label=""]; +nd_492024 -> nd_492014 [label=""]; +nd_492044 -> nd_492051 [label=""]; +nd_492051 -> nd_492024 [label=""]; +nd_492073 -> nd_492098 [label=""]; +nd_492098 -> nd_492108 [label=""]; +nd_492108 -> nd_492129 [label=""]; +nd_492129 -> nd_492444 [label=""]; +nd_492129 -> nd_492451 [label=""]; +nd_492444 -> nd_492149 [label=""]; +nd_492451 -> nd_492461 [label=""]; +nd_492149 -> nd_492153 [label=""]; +nd_492153 -> nd_492163 [label=""]; +nd_492163 -> nd_492166 [label=""]; +nd_492156 -> nd_492172 [label=""]; +nd_492172 -> nd_492175 [label=""]; +nd_492160 -> nd_492156 [label=""]; +nd_492166 -> nd_492160 [label=""]; +nd_492175 -> nd_492179 [label=""]; +nd_492179 -> nd_492182 [label=""]; +nd_492182 -> nd_492236 [label=""]; +nd_492182 -> nd_492243 [label=""]; +nd_492236 -> nd_492185 [label=""]; +nd_492243 -> nd_492259 [label=""]; +nd_492185 -> nd_492211 [label=""]; +nd_492211 -> nd_492188 [label=""]; +nd_492188 -> nd_492229 [label=""]; +nd_492229 -> nd_506901 [label=""]; +nd_492259 -> nd_492254 [label=""]; +nd_492249 -> nd_492266 [label=""]; +nd_492266 -> nd_492271 [label=""]; +nd_492254 -> nd_492249 [label=""]; +nd_492271 -> nd_492285 [label=""]; +nd_492285 -> nd_492276 [label=""]; +nd_492276 -> nd_492290 [label=""]; +nd_492290 -> nd_492295 [label=""]; +nd_492295 -> nd_492309 [label=""]; +nd_492309 -> nd_492314 [label=""]; +nd_492304 -> nd_492323 [label=""]; +nd_492323 -> nd_492331 [label=""]; +nd_492314 -> nd_492304 [label=""]; +nd_492331 -> nd_492342 [label=""]; +nd_492328 -> nd_492359 [label=""]; +nd_492359 -> nd_492414 [label=""]; +nd_492342 -> nd_492328 [label=""]; +nd_492414 -> nd_492424 [label=""]; +nd_492364 -> nd_492439 [label=""]; +nd_492439 -> nd_492451 [label=""]; +nd_492409 -> nd_492364 [label=""]; +nd_492424 -> nd_492409 [label=""]; +nd_492461 -> nd_492467 [label=""]; +nd_492467 -> nd_492469 [label=""]; +nd_492469 -> nd_492477 [label=""]; +nd_492477 -> nd_492479 [label=""]; +nd_492479 -> nd_493766 [label=""]; +nd_492479 -> nd_493771 [label=""]; +nd_493766 -> nd_492482 [label=""]; +nd_493771 -> nd_493795 [label=""]; +nd_492482 -> nd_492491 [label=""]; +nd_492491 -> nd_492488 [label=""]; +nd_492485 -> nd_492496 [label=""]; +nd_492496 -> nd_492499 [label=""]; +nd_492488 -> nd_492485 [label=""]; +nd_492499 -> nd_492502 [label=""]; +nd_492502 -> nd_492508 [label=""]; +nd_492508 -> nd_492520 [label=""]; +nd_492520 -> nd_493429 [label=""]; +nd_492520 -> nd_493433 [label=""]; +nd_493429 -> nd_492523 [label=""]; +nd_493433 -> nd_493651 [label=""]; +nd_492523 -> nd_492536 [label=""]; +nd_492536 -> nd_492544 [label=""]; +nd_492526 -> nd_493426 [label=""]; +nd_493426 -> nd_506901 [label=""]; +nd_492544 -> nd_493422 [label=""]; +nd_493422 -> nd_493412 [label=""]; +nd_493412 -> nd_492526 [label=""]; +nd_493651 -> nd_493646 [label=""]; +nd_493646 -> nd_493656 [label=""]; +nd_493656 -> nd_493755 [label=""]; +nd_493755 -> nd_493752 [label=""]; +nd_493660 -> nd_493664 [label=""]; +nd_493664 -> nd_493747 [label=""]; +nd_493747 -> nd_493761 [label=""]; +nd_493761 -> nd_493771 [label=""]; +nd_493752 -> nd_493758 [label=""]; +nd_493758 -> nd_493660 [label=""]; +nd_493795 -> nd_493803 [label=""]; +nd_493790 -> nd_493808 [label=""]; +nd_493808 -> nd_493812 [label=""]; +nd_493803 -> nd_493790 [label=""]; +nd_493812 -> nd_494066 [label=""]; +nd_493812 -> nd_494071 [label=""]; +nd_494066 -> nd_493817 [label=""]; +nd_494071 -> nd_494077 [label=""]; +nd_493817 -> nd_494014 [label=""]; +nd_494014 -> nd_494031 [label=""]; +nd_493822 -> nd_494061 [label=""]; +nd_494061 -> nd_506901 [label=""]; +nd_494031 -> nd_494045 [label=""]; +nd_494045 -> nd_494050 [label=""]; +nd_494039 -> nd_493822 [label=""]; +nd_494050 -> nd_494039 [label=""]; +nd_494077 -> nd_494082 [label=""]; +nd_494082 -> nd_494191 [label=""]; +nd_494082 -> nd_494194 [label=""]; +nd_494191 -> nd_494087 [label=""]; +nd_494194 -> nd_494202 [label=""]; +nd_494087 -> nd_494120 [label=""]; +nd_494120 -> nd_494132 [label=""]; +nd_494093 -> nd_494151 [label=""]; +nd_494151 -> nd_494159 [label=""]; +nd_494106 -> nd_494093 [label=""]; +nd_494132 -> nd_494139 [label=""]; +nd_494139 -> nd_494144 [label=""]; +nd_494144 -> nd_494106 [label=""]; +nd_494159 -> nd_494170 [label=""]; +nd_494170 -> nd_494178 [label=""]; +nd_494164 -> nd_494186 [label=""]; +nd_494186 -> nd_494194 [label=""]; +nd_494178 -> nd_494183 [label=""]; +nd_494183 -> nd_494164 [label=""]; +nd_494202 -> nd_494198 [label=""]; +nd_494198 -> nd_494207 [label=""]; +nd_494207 -> nd_494211 [label=""]; +nd_494211 -> nd_494876 [label=""]; +nd_494876 -> nd_494951 [label=""]; +nd_494229 -> nd_494249 [label=""]; +nd_494249 -> nd_494255 [label=""]; +nd_494255 -> nd_494266 [label=""]; +nd_494266 -> nd_494297 [label=""]; +nd_494297 -> nd_494869 [label=""]; +nd_494297 -> nd_494983 [label=""]; +nd_494983 -> nd_495029 [label=""]; +nd_494307 -> nd_494318 [label=""]; +nd_494318 -> nd_494324 [label=""]; +nd_494324 -> nd_494360 [label=""]; +nd_494360 -> nd_494365 [label=""]; +nd_494330 -> nd_494307 [label=""]; +nd_494354 -> nd_494330 [label=""]; +nd_494365 -> nd_494392 [label=""]; +nd_494392 -> nd_494385 [label=""]; +nd_494371 -> nd_494398 [label=""]; +nd_494398 -> nd_494407 [label=""]; +nd_494385 -> nd_494371 [label=""]; +nd_494407 -> nd_494411 [label=""]; +nd_494411 -> nd_494422 [label=""]; +nd_494422 -> nd_494463 [label=""]; +nd_494463 -> nd_494473 [label=""]; +nd_494463 -> nd_494479 [label=""]; +nd_494473 -> nd_494864 [label=""]; +nd_494479 -> nd_494498 [label=""]; +nd_494864 -> nd_494968 [label=""]; +nd_494498 -> nd_494502 [label=""]; +nd_494492 -> nd_494509 [label=""]; +nd_494509 -> nd_494516 [label=""]; +nd_494509 -> nd_494524 [label=""]; +nd_494502 -> nd_494492 [label=""]; +nd_494516 -> nd_506901 [label=""]; +nd_494524 -> nd_494530 [label=""]; +nd_494530 -> nd_494539 [label=""]; +nd_494527 -> nd_494554 [label=""]; +nd_494554 -> nd_494565 [label=""]; +nd_494539 -> nd_494533 [label=""]; +nd_494533 -> nd_494527 [label=""]; +nd_494565 -> nd_494841 [label=""]; +nd_494558 -> nd_494864 [label=""]; +nd_494841 -> nd_494832 [label=""]; +nd_494832 -> nd_494558 [label=""]; +nd_494856 -> nd_494354 [label=""]; +nd_494968 -> nd_494975 [label=""]; +nd_494951 -> nd_494880 [label=""]; +nd_494880 -> nd_494963 [label=""]; +nd_494963 -> nd_494229 [label=""]; +nd_494975 -> nd_494229 [label=""]; +nd_495029 -> nd_495013 [label=""]; +nd_495013 -> nd_495052 [label=""]; +nd_495052 -> nd_495422 [label=""]; +nd_495422 -> nd_495860 [label=""]; +nd_495422 -> nd_495868 [label=""]; +nd_495860 -> nd_495442 [label=""]; +nd_495868 -> nd_495877 [label=""]; +nd_495442 -> nd_495451 [label=""]; +nd_495451 -> nd_495466 [label=""]; +nd_495466 -> nd_495459 [label=""]; +nd_495455 -> nd_495472 [label=""]; +nd_495472 -> nd_495475 [label=""]; +nd_495459 -> nd_495455 [label=""]; +nd_495475 -> nd_495482 [label=""]; +nd_495482 -> nd_495509 [label=""]; +nd_495509 -> nd_495617 [label=""]; +nd_495617 -> nd_495622 [label=""]; +nd_495617 -> nd_495642 [label=""]; +nd_495622 -> nd_495633 [label=""]; +nd_495642 -> nd_495647 [label=""]; +nd_495633 -> nd_495626 [label=""]; +nd_495626 -> nd_495638 [label=""]; +nd_495638 -> nd_495642 [label=""]; +nd_495647 -> nd_495656 [label=""]; +nd_495656 -> nd_495752 [label=""]; +nd_495752 -> nd_495852 [label=""]; +nd_495752 -> nd_495868 [label=""]; +nd_495852 -> nd_495757 [label=""]; +nd_495757 -> nd_495765 [label=""]; +nd_495765 -> nd_495780 [label=""]; +nd_495760 -> nd_495795 [label=""]; +nd_495795 -> nd_495804 [label=""]; +nd_495780 -> nd_495771 [label=""]; +nd_495771 -> nd_495760 [label=""]; +nd_495804 -> nd_495818 [label=""]; +nd_495800 -> nd_495868 [label=""]; +nd_495818 -> nd_495825 [label=""]; +nd_495814 -> nd_495800 [label=""]; +nd_495825 -> nd_495835 [label=""]; +nd_495835 -> nd_495814 [label=""]; +nd_495877 -> nd_495887 [label=""]; +nd_495887 -> nd_495890 [label=""]; +nd_495890 -> nd_496001 [label=""]; +nd_495890 -> nd_496010 [label=""]; +nd_496001 -> nd_495895 [label=""]; +nd_496010 -> nd_496047 [label=""]; +nd_495895 -> nd_495908 [label=""]; +nd_495908 -> nd_495923 [label=""]; +nd_495899 -> nd_495936 [label=""]; +nd_495936 -> nd_506901 [label=""]; +nd_495923 -> nd_495930 [label=""]; +nd_495918 -> nd_495899 [label=""]; +nd_495930 -> nd_495918 [label=""]; +nd_496047 -> nd_496056 [label=""]; +nd_496037 -> nd_496075 [label=""]; +nd_496075 -> nd_496087 [label=""]; +nd_496056 -> nd_496037 [label=""]; +nd_496087 -> nd_496153 [label=""]; +nd_496087 -> nd_496159 [label=""]; +nd_496153 -> nd_496095 [label=""]; +nd_496159 -> nd_496175 [label=""]; +nd_496095 -> nd_496117 [label=""]; +nd_496117 -> nd_496132 [label=""]; +nd_496100 -> nd_496148 [label=""]; +nd_496148 -> nd_506901 [label=""]; +nd_496132 -> nd_496137 [label=""]; +nd_496127 -> nd_496100 [label=""]; +nd_496137 -> nd_496127 [label=""]; +nd_496175 -> nd_496165 [label=""]; +nd_496165 -> nd_496182 [label=""]; +nd_496182 -> nd_496185 [label=""]; +nd_496185 -> nd_496188 [label=""]; +nd_496188 -> nd_496194 [label=""]; +nd_496194 -> nd_496266 [label=""]; +nd_496266 -> nd_496304 [label=""]; +nd_496266 -> nd_496307 [label=""]; +nd_496304 -> nd_496270 [label=""]; +nd_496307 -> nd_496378 [label=""]; +nd_496270 -> nd_496295 [label=""]; +nd_496295 -> nd_496282 [label=""]; +nd_496282 -> nd_496301 [label=""]; +nd_496301 -> nd_506901 [label=""]; +nd_496378 -> nd_496387 [label=""]; +nd_496310 -> nd_496414 [label=""]; +nd_496414 -> nd_496419 [label=""]; +nd_496317 -> nd_496310 [label=""]; +nd_496387 -> nd_496407 [label=""]; +nd_496407 -> nd_496317 [label=""]; +nd_496419 -> nd_496584 [label=""]; +nd_496584 -> nd_496446 [label=""]; +nd_496444 -> nd_496586 [label=""]; +nd_496586 -> nd_497346 [label=""]; +nd_496446 -> nd_496513 [label=""]; +nd_496513 -> nd_496457 [label=""]; +nd_496449 -> nd_496529 [label=""]; +nd_496449 -> nd_496531 [label=""]; +nd_496529 -> nd_496444 [label=""]; +nd_496531 -> nd_496539 [label=""]; +nd_496451 -> nd_496521 [label=""]; +nd_496521 -> nd_496449 [label=""]; +nd_496457 -> nd_496459 [label=""]; +nd_496459 -> nd_496461 [label=""]; +nd_496461 -> nd_496469 [label=""]; +nd_496469 -> nd_496482 [label=""]; +nd_496482 -> nd_496485 [label=""]; +nd_496482 -> nd_496497 [label=""]; +nd_496485 -> nd_496491 [label=""]; +nd_496497 -> nd_496505 [label=""]; +nd_496491 -> nd_496487 [label=""]; +nd_496487 -> nd_496493 [label=""]; +nd_496493 -> nd_496509 [label=""]; +nd_496509 -> nd_496511 [label=""]; +nd_496505 -> nd_496499 [label=""]; +nd_496499 -> nd_496507 [label=""]; +nd_496507 -> nd_496509 [label=""]; +nd_496511 -> nd_496451 [label=""]; +nd_496539 -> nd_496555 [label=""]; +nd_496555 -> nd_496563 [label=""]; +nd_496563 -> nd_496565 [label=""]; +nd_496565 -> nd_496578 [label=""]; +nd_496578 -> nd_496535 [label=""]; +nd_497346 -> nd_496612 [label=""]; +nd_496609 -> nd_497355 [label=""]; +nd_497355 -> nd_497647 [label=""]; +nd_496612 -> nd_496748 [label=""]; +nd_496748 -> nd_496627 [label=""]; +nd_496615 -> nd_496765 [label=""]; +nd_496615 -> nd_496767 [label=""]; +nd_496765 -> nd_496609 [label=""]; +nd_496767 -> nd_496778 [label=""]; +nd_496619 -> nd_496755 [label=""]; +nd_496755 -> nd_496615 [label=""]; +nd_496627 -> nd_496629 [label=""]; +nd_496629 -> nd_496652 [label=""]; +nd_496652 -> nd_496681 [label=""]; +nd_496633 -> nd_496712 [label=""]; +nd_496712 -> nd_496715 [label=""]; +nd_496638 -> nd_496633 [label=""]; +nd_496681 -> nd_496638 [label=""]; +nd_496715 -> nd_496718 [label=""]; +nd_496715 -> nd_496730 [label=""]; +nd_496718 -> nd_496724 [label=""]; +nd_496730 -> nd_496738 [label=""]; +nd_496724 -> nd_496720 [label=""]; +nd_496720 -> nd_496728 [label=""]; +nd_496728 -> nd_496742 [label=""]; +nd_496742 -> nd_496744 [label=""]; +nd_496738 -> nd_496732 [label=""]; +nd_496732 -> nd_496740 [label=""]; +nd_496740 -> nd_496742 [label=""]; +nd_496744 -> nd_496619 [label=""]; +nd_496778 -> nd_496802 [label=""]; +nd_496802 -> nd_496816 [label=""]; +nd_496816 -> nd_496821 [label=""]; +nd_496821 -> nd_496846 [label=""]; +nd_496846 -> nd_496771 [label=""]; +nd_497647 -> nd_497399 [label=""]; +nd_497396 -> nd_497649 [label=""]; +nd_497649 -> nd_497968 [label=""]; +nd_497399 -> nd_497544 [label=""]; +nd_497544 -> nd_497423 [label=""]; +nd_497405 -> nd_497564 [label=""]; +nd_497405 -> nd_497566 [label=""]; +nd_497564 -> nd_497396 [label=""]; +nd_497566 -> nd_497575 [label=""]; +nd_497409 -> nd_497554 [label=""]; +nd_497554 -> nd_497405 [label=""]; +nd_497423 -> nd_497426 [label=""]; +nd_497426 -> nd_497449 [label=""]; +nd_497449 -> nd_497466 [label=""]; +nd_497431 -> nd_497498 [label=""]; +nd_497498 -> nd_497501 [label=""]; +nd_497435 -> nd_497431 [label=""]; +nd_497466 -> nd_497435 [label=""]; +nd_497501 -> nd_497505 [label=""]; +nd_497501 -> nd_497522 [label=""]; +nd_497505 -> nd_497512 [label=""]; +nd_497522 -> nd_497532 [label=""]; +nd_497512 -> nd_497507 [label=""]; +nd_497507 -> nd_497515 [label=""]; +nd_497515 -> nd_497537 [label=""]; +nd_497537 -> nd_497541 [label=""]; +nd_497532 -> nd_497525 [label=""]; +nd_497525 -> nd_497534 [label=""]; +nd_497534 -> nd_497537 [label=""]; +nd_497541 -> nd_497409 [label=""]; +nd_497575 -> nd_497607 [label=""]; +nd_497607 -> nd_497618 [label=""]; +nd_497618 -> nd_497621 [label=""]; +nd_497621 -> nd_497637 [label=""]; +nd_497637 -> nd_497570 [label=""]; +nd_497968 -> nd_497692 [label=""]; +nd_497689 -> nd_497974 [label=""]; +nd_497974 -> nd_497991 [label=""]; +nd_497692 -> nd_497861 [label=""]; +nd_497861 -> nd_497713 [label=""]; +nd_497697 -> nd_497883 [label=""]; +nd_497697 -> nd_497887 [label=""]; +nd_497883 -> nd_497689 [label=""]; +nd_497887 -> nd_497905 [label=""]; +nd_497700 -> nd_497873 [label=""]; +nd_497873 -> nd_497697 [label=""]; +nd_497713 -> nd_497716 [label=""]; +nd_497716 -> nd_497747 [label=""]; +nd_497747 -> nd_497766 [label=""]; +nd_497726 -> nd_497803 [label=""]; +nd_497803 -> nd_497813 [label=""]; +nd_497732 -> nd_497726 [label=""]; +nd_497766 -> nd_497732 [label=""]; +nd_497813 -> nd_497818 [label=""]; +nd_497813 -> nd_497835 [label=""]; +nd_497818 -> nd_497827 [label=""]; +nd_497835 -> nd_497846 [label=""]; +nd_497827 -> nd_497820 [label=""]; +nd_497820 -> nd_497831 [label=""]; +nd_497831 -> nd_497853 [label=""]; +nd_497853 -> nd_497857 [label=""]; +nd_497846 -> nd_497838 [label=""]; +nd_497838 -> nd_497849 [label=""]; +nd_497849 -> nd_497853 [label=""]; +nd_497857 -> nd_497700 [label=""]; +nd_497905 -> nd_497925 [label=""]; +nd_497925 -> nd_497939 [label=""]; +nd_497939 -> nd_497941 [label=""]; +nd_497941 -> nd_497959 [label=""]; +nd_497959 -> nd_497899 [label=""]; +nd_497991 -> nd_497981 [label=""]; +nd_497981 -> nd_498011 [label=""]; +nd_498011 -> nd_498016 [label=""]; +nd_498016 -> nd_498053 [label=""]; +nd_498053 -> nd_498073 [label=""]; +nd_498026 -> nd_498082 [label=""]; +nd_498082 -> nd_498087 [label=""]; +nd_498045 -> nd_498026 [label=""]; +nd_498073 -> nd_498077 [label=""]; +nd_498077 -> nd_498045 [label=""]; +nd_498087 -> nd_498097 [label=""]; +nd_498097 -> nd_498109 [label=""]; +nd_498109 -> nd_498133 [label=""]; +nd_498133 -> nd_498212 [label=""]; +nd_498133 -> nd_498217 [label=""]; +nd_498212 -> nd_498140 [label=""]; +nd_498217 -> nd_498507 [label=""]; +nd_498140 -> nd_498157 [label=""]; +nd_498157 -> nd_498169 [label=""]; +nd_498145 -> nd_498182 [label=""]; +nd_498182 -> nd_498200 [label=""]; +nd_498169 -> nd_498177 [label=""]; +nd_498177 -> nd_498145 [label=""]; +nd_498200 -> nd_498195 [label=""]; +nd_498195 -> nd_498205 [label=""]; +nd_498205 -> nd_506901 [label=""]; +nd_498507 -> nd_498267 [label=""]; +nd_498264 -> nd_498515 [label=""]; +nd_498515 -> nd_498807 [label=""]; +nd_498267 -> nd_498380 [label=""]; +nd_498380 -> nd_498293 [label=""]; +nd_498275 -> nd_498418 [label=""]; +nd_498275 -> nd_498422 [label=""]; +nd_498418 -> nd_498264 [label=""]; +nd_498422 -> nd_498432 [label=""]; +nd_498278 -> nd_498410 [label=""]; +nd_498410 -> nd_498275 [label=""]; +nd_498293 -> nd_498295 [label=""]; +nd_498295 -> nd_498297 [label=""]; +nd_498297 -> nd_498310 [label=""]; +nd_498310 -> nd_498329 [label=""]; +nd_498329 -> nd_498334 [label=""]; +nd_498329 -> nd_498352 [label=""]; +nd_498334 -> nd_498345 [label=""]; +nd_498352 -> nd_498362 [label=""]; +nd_498345 -> nd_498337 [label=""]; +nd_498337 -> nd_498348 [label=""]; +nd_498348 -> nd_498370 [label=""]; +nd_498370 -> nd_498375 [label=""]; +nd_498362 -> nd_498357 [label=""]; +nd_498357 -> nd_498365 [label=""]; +nd_498365 -> nd_498370 [label=""]; +nd_498375 -> nd_498278 [label=""]; +nd_498432 -> nd_498455 [label=""]; +nd_498455 -> nd_498468 [label=""]; +nd_498468 -> nd_498471 [label=""]; +nd_498471 -> nd_498489 [label=""]; +nd_498489 -> nd_498425 [label=""]; +nd_498807 -> nd_498554 [label=""]; +nd_498552 -> nd_498812 [label=""]; +nd_498812 -> nd_498855 [label=""]; +nd_498554 -> nd_498672 [label=""]; +nd_498672 -> nd_498579 [label=""]; +nd_498560 -> nd_498693 [label=""]; +nd_498560 -> nd_498697 [label=""]; +nd_498693 -> nd_498552 [label=""]; +nd_498697 -> nd_498711 [label=""]; +nd_498564 -> nd_498683 [label=""]; +nd_498683 -> nd_498560 [label=""]; +nd_498579 -> nd_498584 [label=""]; +nd_498584 -> nd_498587 [label=""]; +nd_498587 -> nd_498600 [label=""]; +nd_498600 -> nd_498621 [label=""]; +nd_498621 -> nd_498627 [label=""]; +nd_498621 -> nd_498643 [label=""]; +nd_498627 -> nd_498637 [label=""]; +nd_498643 -> nd_498656 [label=""]; +nd_498637 -> nd_498630 [label=""]; +nd_498630 -> nd_498640 [label=""]; +nd_498640 -> nd_498663 [label=""]; +nd_498663 -> nd_498667 [label=""]; +nd_498656 -> nd_498647 [label=""]; +nd_498647 -> nd_498660 [label=""]; +nd_498660 -> nd_498663 [label=""]; +nd_498667 -> nd_498564 [label=""]; +nd_498711 -> nd_498739 [label=""]; +nd_498739 -> nd_498755 [label=""]; +nd_498755 -> nd_498757 [label=""]; +nd_498757 -> nd_498787 [label=""]; +nd_498787 -> nd_498703 [label=""]; +nd_498855 -> nd_498861 [label=""]; +nd_498818 -> nd_498912 [label=""]; +nd_498912 -> nd_498918 [label=""]; +nd_498849 -> nd_498818 [label=""]; +nd_498861 -> nd_498868 [label=""]; +nd_498868 -> nd_498882 [label=""]; +nd_498882 -> nd_498886 [label=""]; +nd_498886 -> nd_498898 [label=""]; +nd_498898 -> nd_498906 [label=""]; +nd_498906 -> nd_498849 [label=""]; +nd_498918 -> nd_499278 [label=""]; +nd_499278 -> nd_498971 [label=""]; +nd_498967 -> nd_499283 [label=""]; +nd_499283 -> nd_499289 [label=""]; +nd_498971 -> nd_499091 [label=""]; +nd_499091 -> nd_498992 [label=""]; +nd_498978 -> nd_499116 [label=""]; +nd_498978 -> nd_499118 [label=""]; +nd_499116 -> nd_498967 [label=""]; +nd_499118 -> nd_499128 [label=""]; +nd_498982 -> nd_499102 [label=""]; +nd_499102 -> nd_498978 [label=""]; +nd_498992 -> nd_498996 [label=""]; +nd_498996 -> nd_499000 [label=""]; +nd_499000 -> nd_499015 [label=""]; +nd_499015 -> nd_499035 [label=""]; +nd_499035 -> nd_499042 [label=""]; +nd_499035 -> nd_499060 [label=""]; +nd_499042 -> nd_499054 [label=""]; +nd_499060 -> nd_499072 [label=""]; +nd_499054 -> nd_499046 [label=""]; +nd_499046 -> nd_499056 [label=""]; +nd_499056 -> nd_499080 [label=""]; +nd_499080 -> nd_499086 [label=""]; +nd_499072 -> nd_499064 [label=""]; +nd_499064 -> nd_499074 [label=""]; +nd_499074 -> nd_499080 [label=""]; +nd_499086 -> nd_498982 [label=""]; +nd_499128 -> nd_499155 [label=""]; +nd_499155 -> nd_499253 [label=""]; +nd_499253 -> nd_499255 [label=""]; +nd_499255 -> nd_499272 [label=""]; +nd_499272 -> nd_499121 [label=""]; +nd_499289 -> nd_499286 [label=""]; +nd_499286 -> nd_499294 [label=""]; +nd_499294 -> nd_499298 [label=""]; +nd_499298 -> nd_499306 [label=""]; +nd_499306 -> nd_499314 [label=""]; +nd_499303 -> nd_499331 [label=""]; +nd_499331 -> nd_499337 [label=""]; +nd_499314 -> nd_499320 [label=""]; +nd_499320 -> nd_499325 [label=""]; +nd_499325 -> nd_499303 [label=""]; +nd_499337 -> nd_499340 [label=""]; +nd_499340 -> nd_499348 [label=""]; +nd_499348 -> nd_499360 [label=""]; +nd_499360 -> nd_499365 [label=""]; +nd_499360 -> nd_499397 [label=""]; +nd_499365 -> nd_499371 [label=""]; +nd_499397 -> nd_499498 [label=""]; +nd_499371 -> nd_499379 [label=""]; +nd_499368 -> nd_499397 [label=""]; +nd_499379 -> nd_499385 [label=""]; +nd_499385 -> nd_499390 [label=""]; +nd_499390 -> nd_499368 [label=""]; +nd_499498 -> nd_499403 [label=""]; +nd_499403 -> nd_499407 [label=""]; +nd_499407 -> nd_499413 [label=""]; +nd_499413 -> nd_499439 [label=""]; +nd_499439 -> nd_499458 [label=""]; +nd_499439 -> nd_499576 [label=""]; +nd_499458 -> nd_499465 [label=""]; +nd_499576 -> nd_499600 [label=""]; +nd_499454 -> nd_499483 [label=""]; +nd_499483 -> nd_499493 [label=""]; +nd_499465 -> nd_499454 [label=""]; +nd_499493 -> nd_499504 [label=""]; +nd_499493 -> nd_499576 [label=""]; +nd_499504 -> nd_499538 [label=""]; +nd_499538 -> nd_499546 [label=""]; +nd_499509 -> nd_499570 [label=""]; +nd_499570 -> nd_499630 [label=""]; +nd_499521 -> nd_499509 [label=""]; +nd_499546 -> nd_499552 [label=""]; +nd_499552 -> nd_499557 [label=""]; +nd_499557 -> nd_499563 [label=""]; +nd_499563 -> nd_499521 [label=""]; +nd_499630 -> nd_499640 [label=""]; +nd_499600 -> nd_499612 [label=""]; +nd_499581 -> nd_499623 [label=""]; +nd_499623 -> nd_499630 [label=""]; +nd_499588 -> nd_499581 [label=""]; +nd_499612 -> nd_499618 [label=""]; +nd_499618 -> nd_499588 [label=""]; +nd_499640 -> nd_499651 [label=""]; +nd_499635 -> nd_499673 [label=""]; +nd_499673 -> nd_499686 [label=""]; +nd_499651 -> nd_499661 [label=""]; +nd_499661 -> nd_499635 [label=""]; +nd_499686 -> nd_499679 [label=""]; +nd_499679 -> nd_499697 [label=""]; +nd_499697 -> nd_499707 [label=""]; +nd_499707 -> nd_499717 [label=""]; +nd_499702 -> nd_499738 [label=""]; +nd_499738 -> nd_499747 [label=""]; +nd_499717 -> nd_499725 [label=""]; +nd_499725 -> nd_499702 [label=""]; +nd_499747 -> nd_499759 [label=""]; +nd_499743 -> nd_501499 [label=""]; +nd_501499 -> nd_501534 [label=""]; +nd_499759 -> nd_501479 [label=""]; +nd_501479 -> nd_499743 [label=""]; +nd_501534 -> nd_501549 [label=""]; +nd_501529 -> nd_501566 [label=""]; +nd_501566 -> nd_501569 [label=""]; +nd_501549 -> nd_501529 [label=""]; +nd_501569 -> nd_501807 [label=""]; +nd_501569 -> nd_501892 [label=""]; +nd_501807 -> nd_501576 [label=""]; +nd_501892 -> nd_501918 [label=""]; +nd_501576 -> nd_501583 [label=""]; +nd_501583 -> nd_501590 [label=""]; +nd_501590 -> nd_501607 [label=""]; +nd_501607 -> nd_501618 [label=""]; +nd_501618 -> nd_501728 [label=""]; +nd_501618 -> nd_501803 [label=""]; +nd_501728 -> nd_501625 [label=""]; +nd_501803 -> nd_501735 [label=""]; +nd_501625 -> nd_501637 [label=""]; +nd_501637 -> nd_501648 [label=""]; +nd_501632 -> nd_501892 [label=""]; +nd_501648 -> nd_501681 [label=""]; +nd_501681 -> nd_501632 [label=""]; +nd_501735 -> nd_501749 [label=""]; +nd_501749 -> nd_501761 [label=""]; +nd_501743 -> nd_501892 [label=""]; +nd_501761 -> nd_501780 [label=""]; +nd_501780 -> nd_501743 [label=""]; +nd_501918 -> nd_501931 [label=""]; +nd_501914 -> nd_501973 [label=""]; +nd_501973 -> nd_501980 [label=""]; +nd_501931 -> nd_501956 [label=""]; +nd_501956 -> nd_501914 [label=""]; +nd_501980 -> nd_502103 [label=""]; +nd_502103 -> nd_502095 [label=""]; +nd_502095 -> nd_502234 [label=""]; +nd_502234 -> nd_502245 [label=""]; +nd_502245 -> nd_502458 [label=""]; +nd_502458 -> nd_502465 [label=""]; +nd_502255 -> nd_502577 [label=""]; +nd_502577 -> nd_502586 [label=""]; +nd_502449 -> nd_502255 [label=""]; +nd_502465 -> nd_502474 [label=""]; +nd_502474 -> nd_502484 [label=""]; +nd_502484 -> nd_502496 [label=""]; +nd_502496 -> nd_502528 [label=""]; +nd_502528 -> nd_502562 [label=""]; +nd_502562 -> nd_502571 [label=""]; +nd_502571 -> nd_502449 [label=""]; +nd_502586 -> nd_502601 [label=""]; +nd_502601 -> nd_502614 [label=""]; +nd_502614 -> nd_502646 [label=""]; +nd_502646 -> nd_502744 [label=""]; +nd_502646 -> nd_502755 [label=""]; +nd_502744 -> nd_502653 [label=""]; +nd_502755 -> nd_502923 [label=""]; +nd_502653 -> nd_502680 [label=""]; +nd_502680 -> nd_502701 [label=""]; +nd_502659 -> nd_502735 [label=""]; +nd_502735 -> nd_506901 [label=""]; +nd_502701 -> nd_502713 [label=""]; +nd_502713 -> nd_502724 [label=""]; +nd_502724 -> nd_502659 [label=""]; +nd_502923 -> nd_502916 [label=""]; +nd_502916 -> nd_502930 [label=""]; +nd_502916 -> nd_502935 [label=""]; +nd_502930 -> nd_504366 [label=""]; +nd_502935 -> nd_502957 [label=""]; +nd_504366 -> nd_504374 [label=""]; +nd_502957 -> nd_502949 [label=""]; +nd_502949 -> nd_504181 [label=""]; +nd_502949 -> nd_504361 [label=""]; +nd_504181 -> nd_502962 [label=""]; +nd_504361 -> nd_504185 [label=""]; +nd_502962 -> nd_503014 [label=""]; +nd_503014 -> nd_502969 [label=""]; +nd_502969 -> nd_502980 [label=""]; +nd_502980 -> nd_503000 [label=""]; +nd_503000 -> nd_503006 [label=""]; +nd_503000 -> nd_504174 [label=""]; +nd_503006 -> nd_503011 [label=""]; +nd_504174 -> nd_504143 [label=""]; +nd_503011 -> nd_504134 [label=""]; +nd_503011 -> nd_504174 [label=""]; +nd_504134 -> nd_503037 [label=""]; +nd_503037 -> nd_503047 [label=""]; +nd_503047 -> nd_503062 [label=""]; +nd_503062 -> nd_503052 [label=""]; +nd_503052 -> nd_503091 [label=""]; +nd_503091 -> nd_503100 [label=""]; +nd_503100 -> nd_503194 [label=""]; +nd_503194 -> nd_503233 [label=""]; +nd_503107 -> nd_503255 [label=""]; +nd_503255 -> nd_503266 [label=""]; +nd_503118 -> nd_503107 [label=""]; +nd_503233 -> nd_503244 [label=""]; +nd_503244 -> nd_503118 [label=""]; +nd_503266 -> nd_503273 [label=""]; +nd_503273 -> nd_503289 [label=""]; +nd_503289 -> nd_503324 [label=""]; +nd_503324 -> nd_503420 [label=""]; +nd_503324 -> nd_503428 [label=""]; +nd_503420 -> nd_503332 [label=""]; +nd_503428 -> nd_503477 [label=""]; +nd_503332 -> nd_503358 [label=""]; +nd_503358 -> nd_503375 [label=""]; +nd_503338 -> nd_503393 [label=""]; +nd_503393 -> nd_503406 [label=""]; +nd_503375 -> nd_503383 [label=""]; +nd_503383 -> nd_503338 [label=""]; +nd_503406 -> nd_503399 [label=""]; +nd_503399 -> nd_503413 [label=""]; +nd_503413 -> nd_506901 [label=""]; +nd_503477 -> nd_503491 [label=""]; +nd_503435 -> nd_503593 [label=""]; +nd_503593 -> nd_503596 [label=""]; +nd_503469 -> nd_503435 [label=""]; +nd_503491 -> nd_503516 [label=""]; +nd_503516 -> nd_503522 [label=""]; +nd_503522 -> nd_503562 [label=""]; +nd_503562 -> nd_503587 [label=""]; +nd_503587 -> nd_503590 [label=""]; +nd_503590 -> nd_503469 [label=""]; +nd_503596 -> nd_503745 [label=""]; +nd_503745 -> nd_503742 [label=""]; +nd_503742 -> nd_503754 [label=""]; +nd_503754 -> nd_503758 [label=""]; +nd_503758 -> nd_503765 [label=""]; +nd_503765 -> nd_503778 [label=""]; +nd_503778 -> nd_503834 [label=""]; +nd_503778 -> nd_503837 [label=""]; +nd_503834 -> nd_503784 [label=""]; +nd_503837 -> nd_503844 [label=""]; +nd_503784 -> nd_503801 [label=""]; +nd_503801 -> nd_503810 [label=""]; +nd_503789 -> nd_503820 [label=""]; +nd_503820 -> nd_503828 [label=""]; +nd_503810 -> nd_503815 [label=""]; +nd_503815 -> nd_503789 [label=""]; +nd_503828 -> nd_503823 [label=""]; +nd_503823 -> nd_503831 [label=""]; +nd_503831 -> nd_506901 [label=""]; +nd_503844 -> nd_503840 [label=""]; +nd_503840 -> nd_503854 [label=""]; +nd_503854 -> nd_503871 [label=""]; +nd_503871 -> nd_503857 [label=""]; +nd_503857 -> nd_504120 [label=""]; +nd_504120 -> nd_504131 [label=""]; +nd_504131 -> nd_501973 [label=""]; +nd_504143 -> nd_504157 [label=""]; +nd_504157 -> nd_504147 [label=""]; +nd_504147 -> nd_504170 [label=""]; +nd_504170 -> nd_506901 [label=""]; +nd_504185 -> nd_504196 [label=""]; +nd_504196 -> nd_504192 [label=""]; +nd_504192 -> nd_504280 [label=""]; +nd_504192 -> nd_504353 [label=""]; +nd_504280 -> nd_504200 [label=""]; +nd_504353 -> nd_504284 [label=""]; +nd_504200 -> nd_504218 [label=""]; +nd_504218 -> nd_504225 [label=""]; +nd_504210 -> nd_504257 [label=""]; +nd_504257 -> nd_504268 [label=""]; +nd_504225 -> nd_504233 [label=""]; +nd_504233 -> nd_504248 [label=""]; +nd_504248 -> nd_504210 [label=""]; +nd_504268 -> nd_504261 [label=""]; +nd_504261 -> nd_504276 [label=""]; +nd_504276 -> nd_504357 [label=""]; +nd_504357 -> nd_506901 [label=""]; +nd_504284 -> nd_504296 [label=""]; +nd_504296 -> nd_504302 [label=""]; +nd_504288 -> nd_504333 [label=""]; +nd_504333 -> nd_504344 [label=""]; +nd_504302 -> nd_504309 [label=""]; +nd_504309 -> nd_504325 [label=""]; +nd_504325 -> nd_504288 [label=""]; +nd_504344 -> nd_504336 [label=""]; +nd_504336 -> nd_504357 [label=""]; +nd_504374 -> nd_504386 [label=""]; +nd_504370 -> nd_504407 [label=""]; +nd_504407 -> nd_504412 [label=""]; +nd_504386 -> nd_504377 [label=""]; +nd_504377 -> nd_504370 [label=""]; +nd_504412 -> nd_504416 [label=""]; +nd_504416 -> nd_504429 [label=""]; +nd_504429 -> nd_504440 [label=""]; +nd_504440 -> nd_504446 [label=""]; +nd_504440 -> nd_504607 [label=""]; +nd_504446 -> nd_504473 [label=""]; +nd_504607 -> nd_504628 [label=""]; +nd_504473 -> nd_504488 [label=""]; +nd_504454 -> nd_504495 [label=""]; +nd_504495 -> nd_504649 [label=""]; +nd_504461 -> nd_504454 [label=""]; +nd_504488 -> nd_504492 [label=""]; +nd_504492 -> nd_504461 [label=""]; +nd_504649 -> nd_504656 [label=""]; +nd_504628 -> nd_504636 [label=""]; +nd_504611 -> nd_504643 [label=""]; +nd_504643 -> nd_504649 [label=""]; +nd_504617 -> nd_504611 [label=""]; +nd_504636 -> nd_504640 [label=""]; +nd_504640 -> nd_504617 [label=""]; +nd_504656 -> nd_504826 [label=""]; +nd_504652 -> nd_504831 [label=""]; +nd_504831 -> nd_504839 [label=""]; +nd_504826 -> nd_504652 [label=""]; +nd_504839 -> nd_504954 [label=""]; +nd_504835 -> nd_504967 [label=""]; +nd_504967 -> nd_504976 [label=""]; +nd_504954 -> nd_504842 [label=""]; +nd_504842 -> nd_504835 [label=""]; +nd_504976 -> nd_504984 [label=""]; +nd_504972 -> nd_505003 [label=""]; +nd_505003 -> nd_505011 [label=""]; +nd_504984 -> nd_504989 [label=""]; +nd_504981 -> nd_504972 [label=""]; +nd_504989 -> nd_504981 [label=""]; +nd_505011 -> nd_505025 [label=""]; +nd_505007 -> nd_505036 [label=""]; +nd_505036 -> nd_505044 [label=""]; +nd_505025 -> nd_505015 [label=""]; +nd_505015 -> nd_505007 [label=""]; +nd_505044 -> nd_505053 [label=""]; +nd_505041 -> nd_505071 [label=""]; +nd_505071 -> nd_505080 [label=""]; +nd_505053 -> nd_505058 [label=""]; +nd_505049 -> nd_505041 [label=""]; +nd_505058 -> nd_505049 [label=""]; +nd_505080 -> nd_505092 [label=""]; +nd_505075 -> nd_505104 [label=""]; +nd_505104 -> nd_505112 [label=""]; +nd_505092 -> nd_505083 [label=""]; +nd_505083 -> nd_505075 [label=""]; +nd_505112 -> nd_505121 [label=""]; +nd_505108 -> nd_505138 [label=""]; +nd_505138 -> nd_505155 [label=""]; +nd_505121 -> nd_505125 [label=""]; +nd_505117 -> nd_505108 [label=""]; +nd_505125 -> nd_505117 [label=""]; +nd_505155 -> nd_505163 [label=""]; +nd_505143 -> nd_505167 [label=""]; +nd_505167 -> nd_505172 [label=""]; +nd_505146 -> nd_505143 [label=""]; +nd_505163 -> nd_505146 [label=""]; +nd_505172 -> nd_505180 [label=""]; +nd_505180 -> nd_505193 [label=""]; +nd_505176 -> nd_505206 [label=""]; +nd_505206 -> nd_505214 [label=""]; +nd_505193 -> nd_505184 [label=""]; +nd_505184 -> nd_505176 [label=""]; +nd_505214 -> nd_505219 [label=""]; +nd_505210 -> nd_505226 [label=""]; +nd_505226 -> nd_505504 [label=""]; +nd_505219 -> nd_505210 [label=""]; +nd_505504 -> nd_505515 [label=""]; +nd_505241 -> nd_505246 [label=""]; +nd_505246 -> nd_505249 [label=""]; +nd_505249 -> nd_505259 [label=""]; +nd_505259 -> nd_505267 [label=""]; +nd_505267 -> nd_505271 [label=""]; +nd_505271 -> nd_505501 [label=""]; +nd_505271 -> nd_505540 [label=""]; +nd_505540 -> nd_505557 [label=""]; +nd_505277 -> nd_505281 [label=""]; +nd_505281 -> nd_505284 [label=""]; +nd_505284 -> nd_505287 [label=""]; +nd_505287 -> nd_505335 [label=""]; +nd_505335 -> nd_505326 [label=""]; +nd_505292 -> nd_505277 [label=""]; +nd_505300 -> nd_505303 [label=""]; +nd_505303 -> nd_505306 [label=""]; +nd_505306 -> nd_505312 [label=""]; +nd_505312 -> nd_505318 [label=""]; +nd_505318 -> nd_505321 [label=""]; +nd_505321 -> nd_505338 [label=""]; +nd_505338 -> nd_505399 [label=""]; +nd_505326 -> nd_505300 [label=""]; +nd_505332 -> nd_505292 [label=""]; +nd_505399 -> nd_505341 [label=""]; +nd_505341 -> nd_505344 [label=""]; +nd_505344 -> nd_505393 [label=""]; +nd_505344 -> nd_505405 [label=""]; +nd_505393 -> nd_505350 [label=""]; +nd_505405 -> nd_505411 [label=""]; +nd_505347 -> nd_505365 [label=""]; +nd_505365 -> nd_505367 [label=""]; +nd_505350 -> nd_505356 [label=""]; +nd_505356 -> nd_505347 [label=""]; +nd_505367 -> nd_505373 [label=""]; +nd_505367 -> nd_505402 [label=""]; +nd_505373 -> nd_505379 [label=""]; +nd_505402 -> nd_505498 [label=""]; +nd_505370 -> nd_505388 [label=""]; +nd_505388 -> nd_505390 [label=""]; +nd_505379 -> nd_505370 [label=""]; +nd_505390 -> nd_505402 [label=""]; +nd_505390 -> nd_505405 [label=""]; +nd_505498 -> nd_505525 [label=""]; +nd_505411 -> nd_505414 [label=""]; +nd_505408 -> nd_505434 [label=""]; +nd_505434 -> nd_505489 [label=""]; +nd_505434 -> nd_505498 [label=""]; +nd_505414 -> nd_505420 [label=""]; +nd_505420 -> nd_505426 [label=""]; +nd_505426 -> nd_505408 [label=""]; +nd_505489 -> nd_505438 [label=""]; +nd_505438 -> nd_505451 [label=""]; +nd_505451 -> nd_505462 [label=""]; +nd_505442 -> nd_505485 [label=""]; +nd_505485 -> nd_506901 [label=""]; +nd_505462 -> nd_505466 [label=""]; +nd_505466 -> nd_505474 [label=""]; +nd_505474 -> nd_505479 [label=""]; +nd_505470 -> nd_505442 [label=""]; +nd_505479 -> nd_505470 [label=""]; +nd_505494 -> nd_505332 [label=""]; +nd_505525 -> nd_505531 [label=""]; +nd_505515 -> nd_505508 [label=""]; +nd_505508 -> nd_505522 [label=""]; +nd_505522 -> nd_505241 [label=""]; +nd_505531 -> nd_505537 [label=""]; +nd_505537 -> nd_505241 [label=""]; +nd_505557 -> nd_505566 [label=""]; +nd_505552 -> nd_505581 [label=""]; +nd_505581 -> nd_505602 [label=""]; +nd_505581 -> nd_505605 [label=""]; +nd_505566 -> nd_505552 [label=""]; +nd_505602 -> nd_505584 [label=""]; +nd_505605 -> nd_505611 [label=""]; +nd_505584 -> nd_505593 [label=""]; +nd_505593 -> nd_505587 [label=""]; +nd_505587 -> nd_505599 [label=""]; +nd_505599 -> nd_506901 [label=""]; +nd_505611 -> nd_505614 [label=""]; +nd_505614 -> nd_505620 [label=""]; +nd_505620 -> nd_505626 [label=""]; +nd_505626 -> nd_505737 [label=""]; +nd_505626 -> nd_505742 [label=""]; +nd_505737 -> nd_505629 [label=""]; +nd_505742 -> nd_505759 [label=""]; +nd_505629 -> nd_505640 [label=""]; +nd_505640 -> nd_505649 [label=""]; +nd_505634 -> nd_505655 [label=""]; +nd_505655 -> nd_505694 [label=""]; +nd_505649 -> nd_505634 [label=""]; +nd_505694 -> nd_505658 [label=""]; +nd_505658 -> nd_505664 [label=""]; +nd_505664 -> nd_505670 [label=""]; +nd_505670 -> nd_505676 [label=""]; +nd_505670 -> nd_505732 [label=""]; +nd_505676 -> nd_505682 [label=""]; +nd_505732 -> nd_505698 [label=""]; +nd_505682 -> nd_505688 [label=""]; +nd_505688 -> nd_505732 [label=""]; +nd_505688 -> nd_505742 [label=""]; +nd_505698 -> nd_505709 [label=""]; +nd_505709 -> nd_505720 [label=""]; +nd_505701 -> nd_505729 [label=""]; +nd_505729 -> nd_506901 [label=""]; +nd_505720 -> nd_505724 [label=""]; +nd_505717 -> nd_505701 [label=""]; +nd_505724 -> nd_505717 [label=""]; +nd_505759 -> nd_505763 [label=""]; +nd_505754 -> nd_505784 [label=""]; +nd_505784 -> nd_505795 [label=""]; +nd_505784 -> nd_505802 [label=""]; +nd_505763 -> nd_505772 [label=""]; +nd_505772 -> nd_505778 [label=""]; +nd_505778 -> nd_505754 [label=""]; +nd_505795 -> nd_505790 [label=""]; +nd_505802 -> nd_505841 [label=""]; +nd_505790 -> nd_506901 [label=""]; +nd_505841 -> nd_505854 [label=""]; +nd_505831 -> nd_505878 [label=""]; +nd_505878 -> nd_505881 [label=""]; +nd_505854 -> nd_505831 [label=""]; +nd_505881 -> nd_505929 [label=""]; +nd_505881 -> nd_505933 [label=""]; +nd_505929 -> nd_505886 [label=""]; +nd_505933 -> nd_505948 [label=""]; +nd_505886 -> nd_505901 [label=""]; +nd_505901 -> nd_505915 [label=""]; +nd_505891 -> nd_505925 [label=""]; +nd_505925 -> nd_506901 [label=""]; +nd_505915 -> nd_505921 [label=""]; +nd_505910 -> nd_505891 [label=""]; +nd_505921 -> nd_505910 [label=""]; +nd_505948 -> nd_505951 [label=""]; +nd_505945 -> nd_505971 [label=""]; +nd_505971 -> nd_505973 [label=""]; +nd_505951 -> nd_505959 [label=""]; +nd_505959 -> nd_505963 [label=""]; +nd_505963 -> nd_505945 [label=""]; +nd_505973 -> nd_506029 [label=""]; +nd_505973 -> nd_506032 [label=""]; +nd_506029 -> nd_505977 [label=""]; +nd_506032 -> nd_506046 [label=""]; +nd_505977 -> nd_505990 [label=""]; +nd_505990 -> nd_505999 [label=""]; +nd_505981 -> nd_506025 [label=""]; +nd_506025 -> nd_506901 [label=""]; +nd_505999 -> nd_506003 [label=""]; +nd_506003 -> nd_506013 [label=""]; +nd_506013 -> nd_506018 [label=""]; +nd_506009 -> nd_505981 [label=""]; +nd_506018 -> nd_506009 [label=""]; +nd_506046 -> nd_506051 [label=""]; +nd_506041 -> nd_506066 [label=""]; +nd_506066 -> nd_506076 [label=""]; +nd_506051 -> nd_506056 [label=""]; +nd_506056 -> nd_506061 [label=""]; +nd_506061 -> nd_506041 [label=""]; +nd_506076 -> nd_506080 [label=""]; +nd_506071 -> nd_506093 [label=""]; +nd_506093 -> nd_506220 [label=""]; +nd_506080 -> nd_506084 [label=""]; +nd_506084 -> nd_506088 [label=""]; +nd_506088 -> nd_506071 [label=""]; +nd_506220 -> nd_506186 [label=""]; +nd_506102 -> nd_506107 [label=""]; +nd_506107 -> nd_506112 [label=""]; +nd_506112 -> nd_506117 [label=""]; +nd_506117 -> nd_506126 [label=""]; +nd_506117 -> nd_506292 [label=""]; +nd_506126 -> nd_506131 [label=""]; +nd_506292 -> nd_506224 [label=""]; +nd_506131 -> nd_506136 [label=""]; +nd_506136 -> nd_506141 [label=""]; +nd_506141 -> nd_506162 [label=""]; +nd_506141 -> nd_506292 [label=""]; +nd_506162 -> nd_506167 [label=""]; +nd_506150 -> nd_506102 [label=""]; +nd_506167 -> nd_506172 [label=""]; +nd_506172 -> nd_506177 [label=""]; +nd_506177 -> nd_506193 [label=""]; +nd_506177 -> nd_506292 [label=""]; +nd_506193 -> nd_506198 [label=""]; +nd_506186 -> nd_506150 [label=""]; +nd_506198 -> nd_506202 [label=""]; +nd_506202 -> nd_506208 [label=""]; +nd_506208 -> nd_506292 [label=""]; +nd_506208 -> nd_506298 [label=""]; +nd_506298 -> nd_506315 [label=""]; +nd_506224 -> nd_506242 [label=""]; +nd_506242 -> nd_506254 [label=""]; +nd_506228 -> nd_506288 [label=""]; +nd_506288 -> nd_506901 [label=""]; +nd_506254 -> nd_506259 [label=""]; +nd_506259 -> nd_506263 [label=""]; +nd_506263 -> nd_506267 [label=""]; +nd_506267 -> nd_506276 [label=""]; +nd_506276 -> nd_506281 [label=""]; +nd_506272 -> nd_506228 [label=""]; +nd_506281 -> nd_506272 [label=""]; +nd_506315 -> nd_506320 [label=""]; +nd_506312 -> nd_506353 [label=""]; +nd_506353 -> nd_506355 [label=""]; +nd_506320 -> nd_506312 [label=""]; +nd_506355 -> nd_506441 [label=""]; +nd_506355 -> nd_506448 [label=""]; +nd_506441 -> nd_506364 [label=""]; +nd_506448 -> nd_506492 [label=""]; +nd_506364 -> nd_506389 [label=""]; +nd_506389 -> nd_506401 [label=""]; +nd_506367 -> nd_506437 [label=""]; +nd_506437 -> nd_506901 [label=""]; +nd_506401 -> nd_506408 [label=""]; +nd_506408 -> nd_506424 [label=""]; +nd_506424 -> nd_506428 [label=""]; +nd_506420 -> nd_506367 [label=""]; +nd_506428 -> nd_506420 [label=""]; +nd_506492 -> nd_506505 [label=""]; +nd_506474 -> nd_506538 [label=""]; +nd_506538 -> nd_506570 [label=""]; +nd_506505 -> nd_506526 [label=""]; +nd_506526 -> nd_506474 [label=""]; +nd_506570 -> nd_506577 [label=""]; +nd_506565 -> nd_506592 [label=""]; +nd_506592 -> nd_506595 [label=""]; +nd_506577 -> nd_506565 [label=""]; +nd_506595 -> nd_506654 [label=""]; +nd_506595 -> nd_506659 [label=""]; +nd_506654 -> nd_506599 [label=""]; +nd_506659 -> nd_506897 [label=""]; +nd_506599 -> nd_506620 [label=""]; +nd_506620 -> nd_506629 [label=""]; +nd_506605 -> nd_506650 [label=""]; +nd_506650 -> nd_506901 [label=""]; +nd_506629 -> nd_506638 [label=""]; +nd_506638 -> nd_506643 [label=""]; +nd_506635 -> nd_506605 [label=""]; +nd_506643 -> nd_506635 [label=""]; +nd_506897 -> nd_506703 [label=""]; +nd_506701 -> nd_506901 [label=""]; +nd_506703 -> nd_506723 [label=""]; +nd_506723 -> nd_506793 [label=""]; +nd_506793 -> nd_506859 [label=""]; +nd_506859 -> nd_506863 [label=""]; +nd_506863 -> nd_506880 [label=""]; +nd_506880 -> nd_506716 [label=""]; +nd_506905 -> nd_506981 [label=""]; +nd_506981 -> nd_506995 [label=""]; +nd_506995 -> nd_507013 [label=""]; +nd_507013 -> nd_507027 [label=""]; +nd_507013 -> nd_507054 [label=""]; +nd_507027 -> nd_507047 [label=""]; +nd_507054 -> nd_507072 [label=""]; +nd_507047 -> nd_507042 [label=""]; +nd_507042 -> nd_507054 [label=""]; +nd_507072 -> nd_507152 [label=""]; +nd_507152 -> nd_507182 [label=""]; +nd_507182 -> nd_507276 [label=""]; +nd_507182 -> nd_507304 [label=""]; +nd_507276 -> nd_507289 [label=""]; +nd_507304 -> nd_507315 [label=""]; +nd_507289 -> nd_507283 [label=""]; +nd_507283 -> nd_507304 [label=""]; +nd_507315 -> nd_507310 [label=""]; +nd_507310 -> nd_507322 [label=""]; +nd_507322 -> nd_508059 [label=""]; +nd_508059 -> nd_508074 [label=""]; +nd_508074 -> nd_508188 [label=""]; +nd_508188 -> nd_508194 [label=""]; +nd_508188 -> nd_508213 [label=""]; +nd_508194 -> nd_508203 [label=""]; +nd_508213 -> nd_508223 [label=""]; +nd_508203 -> nd_508199 [label=""]; +nd_508199 -> nd_508213 [label=""]; +nd_508223 -> nd_508253 [label=""]; +nd_508253 -> nd_508274 [label=""]; +nd_508274 -> nd_508281 [label=""]; +nd_508274 -> nd_508329 [label=""]; +nd_508281 -> nd_508312 [label=""]; +nd_508329 -> nd_508347 [label=""]; +nd_508312 -> nd_508286 [label=""]; +nd_508286 -> nd_508329 [label=""]; +nd_508347 -> nd_508432 [label=""]; +nd_508432 -> nd_508455 [label=""]; +nd_508455 -> nd_508460 [label=""]; +nd_508455 -> nd_508479 [label=""]; +nd_508460 -> nd_508471 [label=""]; +nd_508479 -> nd_508495 [label=""]; +nd_508471 -> nd_508463 [label=""]; +nd_508463 -> nd_508479 [label=""]; +nd_508495 -> nd_508558 [label=""]; +nd_508558 -> nd_508698 [label=""]; +nd_508698 -> nd_509084 [label=""]; +nd_508698 -> nd_509089 [label=""]; +nd_509084 -> nd_508710 [label=""]; +nd_509089 -> nd_509097 [label=""]; +nd_508710 -> nd_508736 [label=""]; +nd_508736 -> nd_508743 [label=""]; +nd_508728 -> nd_508783 [label=""]; +nd_508783 -> nd_508995 [label=""]; +nd_508743 -> nd_508767 [label=""]; +nd_508767 -> nd_508728 [label=""]; +nd_508995 -> nd_509065 [label=""]; +nd_508792 -> nd_509089 [label=""]; +nd_509065 -> nd_509076 [label=""]; +nd_509076 -> nd_508792 [label=""]; +nd_509097 -> nd_509094 [label=""]; +nd_509094 -> nd_509119 [label=""]; +nd_509119 -> nd_509127 [label=""]; +nd_509127 -> nd_509124 [label=""]; +nd_509124 -> nd_509134 [label=""]; +nd_509134 -> nd_509146 [label=""]; +nd_509146 -> nd_509139 [label=""]; +nd_509139 -> nd_509151 [label=""]; +nd_509151 -> nd_509157 [label=""]; +nd_509157 -> nd_509154 [label=""]; +nd_509154 -> nd_509163 [label=""]; +nd_509163 -> nd_509171 [label=""]; +nd_509171 -> nd_509168 [label=""]; +nd_509168 -> nd_509177 [label=""]; +nd_509177 -> nd_509180 [label=""]; +nd_509180 -> nd_483685 [label=""]; +nd_509185 -> nd_483723 [label=""]; +} \ No newline at end of file diff --git a/PrintCFG.dgml/cpp/example/polkit/cfg-false-successor-colored.pdf b/PrintCFG.dgml/cpp/example/polkit/cfg-false-successor-colored.pdf new file mode 100644 index 0000000..1bc7160 Binary files /dev/null and b/PrintCFG.dgml/cpp/example/polkit/cfg-false-successor-colored.pdf differ diff --git a/PrintCFG.dgml/cpp/example/polkit/cfg-false-successor.dgml b/PrintCFG.dgml/cpp/example/polkit/cfg-false-successor.dgml new file mode 100644 index 0000000..e96c6f9 --- /dev/null +++ b/PrintCFG.dgml/cpp/example/polkit/cfg-false-successor.dgml @@ -0,0 +1,2568 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dgml2dot b/dgml2dot index 5db1bb0..6b8cdb5 100755 --- a/dgml2dot +++ b/dgml2dot @@ -5,6 +5,19 @@ import re import sys import xml.etree.ElementTree as ET +import argparse + +parser = argparse.ArgumentParser(description='Read a dgml file and produce dot output.') +parser.add_argument('-m', '--merge-with', metavar='mergefile', type=str, + help='Color nodes found in main and mergefile to distinguish them') +args = parser.parse_args() + +mergenodes = set() +if args.merge_with: + # Form a set of Node Ids to check Node presence later + mergetree = ET.fromstring(open(args.merge_with, 'rb').read()) + for node in mergetree.find("{http://schemas.microsoft.com/vs/2009/dgml}Nodes"): + mergenodes.add(node.attrib['Id']) # Read source xml = sys.stdin.read() @@ -20,7 +33,10 @@ for node in root.find("{http://schemas.microsoft.com/vs/2009/dgml}Nodes"): keys = set(att.keys()) - set(['Id', 'Label']) prop_l = ['{}="{}"'.format(key, att[key]) for key in keys] prop_l.append('{}="{}"'.format("label", att["Label"])) - node_s = "nd_{} [{}];".format(att['Id'], ", ".join(prop_l)) + node_id = att['Id'] + if node_id in mergenodes: + prop_l.append('color=green') + node_s = "nd_{} [{}];".format(node_id, ", ".join(prop_l)) body_l.append(node_s) for edge in root.find("{http://schemas.microsoft.com/vs/2009/dgml}Links"):