(command.CommandList
  children: [
    (command.ShFunction
      name_tok: <p666_show_usage>
      name: p666_show_usage
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {($ Id.VSub_Pound '#')}
                                {<-ne>}
                                {<0>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <p666_printf_error>
                      more_env: []
                      words: [{<p666_printf_error>} {(DQ (${ Id.VSub_At '@'))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [104 117]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(SQ <HEREDOC>)}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'usage: posixcube.sh -h HOST... [OPTION]... COMMAND...\n'>
                        <'\n'>
                        <
'  posixcube.sh is a POSIX compliant shell script server automation framework.\n'
                        >
                        <
'  Use consistent APIs for common tasks and package functionality and file\n'
                        >
                        <'  templates in cubes (like recipes/playbooks from other frameworks).\n'>
                        <'\n'>
                        <'  -?        Help.\n'>
                        <
'  -h HOST   Target host. Option may be specified multiple times. If a host has\n'
                        >
                        <
'            a wildcard (\'*\'), then HOST is interpeted as a regular expression,\n'
                        >
                        <
'            with \'*\' replaced with \'.*\' and any matching hosts in the following\n'
                        >
                        <'            files are added to the HOST list: /etc/ssh_config,\n'>
                        <'            /etc/ssh/ssh_config, ~/.ssh/config, /etc/ssh_known_hosts,\n'>
                        <
'            /etc/ssh/ssh_known_hosts, ~/.ssh/known_hosts, and /etc/hosts.\n'
                        >
                        <
'  -c CUBE   Execute a cube. Option may be specified multiple times. If COMMANDS\n'
                        >
                        <'            are also specified, cubes are run first.\n'>
                        <'  -u USER   SSH user. Defaults to ${USER}.\n'>
                        <
'  -e ENVAR  Shell script with environment variable assignments which is\n'
                        >
                        <'            uploaded and sourced on each HOST. Option may be specified\n'>
                        <'            multiple times. Files ending with .enc will be decrypted\n'>
                        <
'            temporarily. If not specified, defaults to envars*sh envars*sh.enc\n'
                        >
                        <'  -p PWD    Password for decrypting .enc ENVAR files.\n'>
                        <
'  -w PWDF   File that contains the password for decrypting .enc ENVAR files.\n'
                        >
                        <'            Defaults to ~/.posixcube.pwd\n'>
                        <'  -r ROLE   Role name. Option may be specified multiple times.\n'>
                        <
'  -o P=V    Set the specified parameter P with the value V. Do not put double\n'
                        >
                        <
'            quotes around V. If V contains *, try to find matching hosts per\n'
                        >
                        <'            the -h algorithm. Option may be specified multiple times.\n'>
                        <
'  -i CUBE   Upload a CUBE but do not execute it. This is needed when one CUBE\n'
                        >
                        <'            includes this CUBE using cube_include.\n'>
                        <'  -v        Show version information.\n'>
                        <'  -d        Print debugging information.\n'>
                        <'  -q        Quiet; minimize output.\n'>
                        <
'  -b        If using bash, install programmable tab completion for SSH hosts.\n'
                        >
                        <
'  -s        Skip remote host initialization (making ~/posixcubes, uploading\n'
                        >
                        <'            posixcube.sh, etc.\n'>
                        <'  -k        Keep the cube_exec.sh generated script.\n'>
                        <'  -z SPEC   Use the SPEC set of options from the ./cubespecs.ini file\n'>
                        <
'  -a        Asynchronously execute remote CUBEs/COMMANDs. Works on Bash only.\n'
                        >
                        <
'  -y        If a HOST returns a non-zero code, continue processing other HOSTs.\n'
                        >
                        <
'  COMMAND   Remote command to run on each HOST. Option may be specified\n'
                        >
                        <
'            multiple times. If no HOSTs are specified, available sub-commands:\n'
                        >
                        <
'              edit: Decrypt, edit, and re-encrypt ENVAR file with $EDITOR.\n'
                        >
                        <'              show: Decrypt and print ENVAR file.\n'>
                        <'              source: Source all ENVAR files. Must be run with\n'>
                        <
'                      POSIXCUBE_SOURCED (see Public Variables section below).\n'
                        >
                        <'\n'>
                        <'Description:\n'>
                        <'\n'>
                        <
'  posixcube.sh is used to execute CUBEs and/or COMMANDs on one or more HOSTs.\n'
                        >
                        <'  \n'>
                        <
'  A CUBE is a shell script or directory containing shell scripts. The CUBE\n'
                        >
                        <
'  is rsync\'ed to each HOST. If CUBE is a shell script, it\'s executed. If\n'
                        >
                        <
'  CUBE is a directory, a shell script of the same name in that directory\n'
                        >
                        <
'  is executed. In both cases, the directory is changed to the directory\n'
                        >
                        <
'  containing the script before execution so that you may reference files\n'
                        >
                        <'  such as templates using relative paths.\n'>
                        <'  \n'>
                        <
'  An ENVAR script is encouraged to use environment variable names of the form\n'
                        >
                        <
'  cubevar_${uniquecontext}_envar="value". If a CUBE directory contains the\n'
                        >
                        <
'  file `envars.sh`, it\'s sourced before anything else (including `-e ENVARs`).\n'
                        >
                        <'  \n'>
                        <
'  Both CUBEs and COMMANDs may execute any of the functions defined in the\n'
                        >
                        <
'  "Public APIs" in the posixcube.sh script. Short descriptions of the functions\n'
                        >
                        <
'  are in the APIs section below. See the source comments above each function\n'
                        >
                        <'  for details.\n'>
                        <'  \n'>
                        <
'Examples (assuming posixcube.sh is on ${PATH}, or executed absolutely):\n'
                        >
                        <'\n'>
                        <'  posixcube.sh -h socrates uptime\n'>
                        <'  \n'>
                        <
'    Run the `uptime` command on host `socrates`. This is not very different\n'
                        >
                        <
'    from ssh ${USER}@socrates uptime, except that COMMANDs (`uptime`) have\n'
                        >
                        <'    access to the cube_* public functions.\n'>
                        <'  \n'>
                        <'  posixcube.sh -h socrates -c test.sh\n'>
                        <'  \n'>
                        <'    Run the `test.sh` script (CUBE) on host `socrates`. The script has\n'>
                        <'    access to the cube_* public functions.\n'>
                        <'  \n'>
                        <'  posixcube.sh -h socrates -c test\n'>
                        <'  \n'>
                        <
'    Upload the entire `test` directory (CUBE) to the host `socrates` and\n'
                        >
                        <'    then execute the `test.sh` script within that directory (the name\n'>
                        <
'    of the script is expected to be the same as the name of the CUBE). This\n'
                        >
                        <'    allows for easily packaging other scripts and resources needed by\n'>
                        <'    `test.sh`.\n'>
                        <'  \n'>
                        <'  posixcube.sh -u root -h socrates -h seneca uptime\n'>
                        <'  \n'>
                        <'    Run the `uptime` command on hosts `socrates` and `seneca`\n'>
                        <'    as the user `root`.\n'>
                        <'  \n'>
                        <'  posixcube.sh -h web*.test.com uptime\n'>
                        <'  \n'>
                        <
'    Run the `uptime` command on all hosts matching the regular expression\n'
                        >
                        <'    web.*.test.com in the SSH configuration files.\n'>
                        <'  \n'>
                        <
'  sudo ${PATH_TO}/posixcube.sh -b && . /etc/bash_completion.d/posixcube_completion.sh\n'
                        >
                        <'  \n'>
                        <
'    For Bash users, install a programmable completion script to support tab\n'
                        >
                        <'    auto-completion of hosts from SSH configuration files.\n'>
                        <'\n'>
                        <'  posixcube.sh -e production.sh.enc show\n'>
                        <'  \n'>
                        <'    Decrypt and show the contents of production.sh\n'>
                        <'  \n'>
                        <'  posixcube.sh -e production.sh.enc edit\n'>
                        <'  \n'>
                        <
'    Decrypt, edit, and re-encrypt the contents of production.sh with $EDITOR\n'
                        >
                        <'\n'>
                        <'Philosophy:\n'>
                        <'\n'>
                        <
'  Fail hard and fast. In principle, a well written script would check ${?}\n'
                        >
                        <
'  after each command and either gracefully handle it, or report an error.\n'
                        >
                        <'  Few people write scripts this well, so we enforce this check (using\n'>
                        <
'  `cube_check_return` within all APIs) and we encourage you to do the same\n'
                        >
                        <
'  in your scripts with `touch /etc/fstab || cube_check_return`. All cube_*\n'
                        >
                        <
'  APIs are guaranteed to do their own checks, so you don\'t have to do this\n'
                        >
                        <
'  for those calls; however, note that if you\'re executing a cube_* API in a\n'
                        >
                        <
'  sub-shell, although any failures will be reported by cube_check_return,\n'
                        >
                        <
'  the script will continue unless you also check the return of the sub-shell.\n'
                        >
                        <'  For example: $(cube_readlink /etc/localtime) || cube_check_return\n'>
                        <
'  With this strategy, unfortunately piping becomes more difficult. There are\n'
                        >
                        <
'  non-standard mechanisms like pipefail and PIPESTATUS, but the standardized\n'
                        >
                        <
'  approach is to run each command separately and check the status. For example:\n'
                        >
                        <
'  cube_app_result1="$(command1 || cube_check_return)" || cube_check_return\n'
                        >
                        <
'  cube_app_result2="$(printf \'%s\' "${cube_app_result1}" | command2 || cube_check_return)" || cube_check_return\n'
                        >
                        <'  \n'>
                        <'  We do not use `set -e` because some functions may handle all errors\n'>
                        <
'  internally (with `cube_check_return`) and use a positive return code as a\n'
                        >
                        <'  "benign" result (e.g. `cube_set_file_contents`).\n'>
                        <'\n'>
                        <'Frequently Asked Questions:\n'>
                        <'\n'>
                        <
'  * Why is there a long delay between "Preparing hosts" and the first remote\n'
                        >
                        <'    execution?\n'>
                        <'  \n'>
                        <
'    You can see details of what\'s happening with the `-d` flag. By default,\n'
                        >
                        <
'    the script first loops through every host and ensures that ~/posixcubes/\n'
                        >
                        <
'    exists, then it transfers itself to the remote host. These two actions\n'
                        >
                        <
'    may be skipped with the `-s` parameter if you\'ve already run the script\n'
                        >
                        <
'    at least once and your version of this script hasn\'t been updated. Next,\n'
                        >
                        <
'    the script loops through every host and transfers any CUBEs and a script\n'
                        >
                        <
'    containing the CUBEs and COMMANDs to run (`cube_exec.sh`). Finally,\n'
                        >
                        <
'    you\'ll see the "Executing on HOST..." line and the real execution starts.\n'
                        >
                        <'\n'>
                        <'Cube Development:\n'>
                        <'\n'>
                        <
'  Shell scripts don\'t have scoping, so to reduce the chances of function name\n'
                        >
                        <
'  conflicts, name functions cube_${cubename}_${function} and name variables\n'
                        >
                        <'  cubevar_${cubename}_${var}.\n'>
                        <'\n'>
                        <'Public APIs:\n'>
                        <'  \n'>
                        <'  * cube_echo\n'>
                        <'      Print ${@} to stdout prefixed with ([$(date)] [$(hostname)]) and\n'>
                        <'      suffixed with a newline.\n'>
                        <'      Example: cube_echo "Hello World"\n'>
                        <'\n'>
                        <'  * cube_printf\n'>
                        <'      Print $1 to stdout prefixed with ([$(date)] [$(hostname)]) and\n'>
                        <'      suffixed with a newline (with optional printf arguments in $@).\n'>
                        <'      Example: cube_printf "Hello World from PID %5s" $$\n'>
                        <'\n'>
                        <'  * cube_error_echo\n'>
                        <
'      Same as cube_echo except output to stderr and include a red "Error: "\n'
                        >
                        <'      message prefix.\n'>
                        <'      Example: cube_error "Goodbye World"\n'>
                        <'\n'>
                        <'  * cube_error_printf\n'>
                        <
'      Same as cube_printf except output to stderr and include a red "Error: "\n'
                        >
                        <'      message prefix.\n'>
                        <'      Example: cube_error "Goodbye World from PID %5s" $$\n'>
                        <'\n'>
                        <'  * cube_throw\n'>
                        <
'      Same as cube_error_echo but also print a stack of functions and processes\n'
                        >
                        <'      (if available) and then call `exit 1`.\n'>
                        <'      Example: cube_throw "Expected some_file."\n'>
                        <'\n'>
                        <'  * cube_check_return\n'>
                        <'      Check if $? is non-zero and call cube_throw if so.\n'>
                        <'      Example: some_command || cube_check_return\n'>
                        <'\n'>
                        <'  * cube_include\n'>
                        <'      Include the ${1} cube\n'>
                        <'      Example: cube_include core_cube\n'>
                        <'\n'>
                        <'  * cube_check_numargs\n'>
                        <'      Call cube_throw if there are less than $1 arguments in $@\n'>
                        <'      Example: cube_check_numargs 2 "${@}"\n'>
                        <'\n'>
                        <'  * cube_service\n'>
                        <'      Run the $1 action on the $2 service.\n'>
                        <'      Example: cube_service start crond\n'>
                        <'\n'>
                        <'  * cube_package\n'>
                        <
'      Pass $@ to the package manager. Implicitly passes the the parameter\n'
                        >
                        <'      to say yes to questions.\n'>
                        <'      Example: cube_package install python\n'>
                        <'\n'>
                        <'  * cube_append_str\n'>
                        <'      Echo $1 with $2 appended after a space if $1 was not blank.\n'>
                        <
'      Example: cubevar_app_str=$(cube_append_str "${cubevar_app_str}" "Test")\n'
                        >
                        <'\n'>
                        <'  * cube_command_exists\n'>
                        <'      Check if $1 command or function exists in the current context.\n'>
                        <'      Example: cube_command_exists systemctl\n'>
                        <'\n'>
                        <'  * cube_dir_exists\n'>
                        <'      Check if $1 exists as a directory.\n'>
                        <'      Example: cube_dir_exists /etc/cron.d/\n'>
                        <'\n'>
                        <'  * cube_file_exists\n'>
                        <'      Check if $1 exists as a file with read access.\n'>
                        <'      Example: cube_file_exists /etc/cron.d/0hourly\n'>
                        <'\n'>
                        <'  * cube_operating_system\n'>
                        <
'      Detect operating system and return one of the POSIXCUBE_OS_* values.\n'
                        >
                        <
'      Example: [ $(cube_operating_system) -eq ${POSIXCUBE_OS_LINUX} ] && ...\n'
                        >
                        <'\n'>
                        <'  * cube_operating_system_has_flavor\n'>
                        <
'      Check if the operating system flavor includes the flavor specified in $1\n'
                        >
                        <'      by one of the POSIXCUBE_OS_FLAVOR_* values.\n'>
                        <
'      Example: cube_operating_system_has_flavor ${POSIXCUBE_OS_FLAVOR_FEDORA} && ...\n'
                        >
                        <'\n'>
                        <'  * cube_shell\n'>
                        <'      Detect running shell and return one of the CUBE_SHELL_* values.\n'>
                        <'      Example: [ $(cube_shell) -eq ${POSIXCUBE_SHELL_BASH} ] && ...\n'>
                        <'\n'>
                        <'  * cube_current_script_name\n'>
                        <'      echo the basename of the currently executing script.\n'>
                        <'      Example: script_name=$(cube_current_script_name)\n'>
                        <'\n'>
                        <'  * cube_current_script_abs_path\n'>
                        <'      echo the absolute path the currently executing script.\n'>
                        <'      Example: script_name=$(cube_current_script_abs_path)\n'>
                        <'\n'>
                        <'  * cube_file_size\n'>
                        <'      echo the size of a file $1 in bytes\n'>
                        <'      Example: cube_file_size some_file\n'>
                        <'\n'>
                        <'  * cube_set_file_contents\n'>
                        <
'      Copy the contents of $2 on top of $1 if $1 doesn\'t exist or the contents\n'
                        >
                        <
'      are different than $2. If $2 ends with ".template", first evaluate all\n'
                        >
                        <'      ${VARIABLE} expressions (except for \\${VARIABLE}).\n'>
                        <
'      Example: cube_set_file_contents "/etc/npt.conf" "templates/ntp.conf"\n'
                        >
                        <'\n'>
                        <'  * cube_set_file_contents_string\n'>
                        <
'      Set the contents of $1 to the string $@. Create file if it doesn\'t exist.\n'
                        >
                        <'      Example: cube_set_file_contents_string ~/.info "Hello World"\n'>
                        <'\n'>
                        <'  * cube_expand_parameters\n'>
                        <
'      echo stdin to stdout with all ${VAR}\'s evaluated (except for \\${VAR})\n'
                        >
                        <'      Example: cube_expand_parameters < template > output\n'>
                        <'\n'>
                        <'  * cube_readlink\n'>
                        <'      Echo the absolute path of $1 without any symbolic links.\n'>
                        <'      Example: cube_readlink /etc/localtime\n'>
                        <'\n'>
                        <'  * cube_random_number\n'>
                        <'      Echo a random number between 1 and $1\n'>
                        <'      Example: cube_random_number 10\n'>
                        <'\n'>
                        <'  * cube_tmpdir\n'>
                        <'      Echo a temporary directory\n'>
                        <'      Example: cube_tmpdir\n'>
                        <'\n'>
                        <'  * cube_total_memory\n'>
                        <'      Echo total system memory in bytes\n'>
                        <'      Example: cube_total_memory\n'>
                        <'\n'>
                        <'  * cube_ensure_directory\n'>
                        <'      Ensure directory $1 exists\n'>
                        <'      Example: cube_ensure_directory ~/.ssh/\n'>
                        <'\n'>
                        <'  * cube_ensure_file\n'>
                        <'      Ensure file $1 exists\n'>
                        <'      Example: cube_ensure_file ~/.ssh/authorized_keys\n'>
                        <'\n'>
                        <'  * cube_pushd\n'>
                        <'      Equivalent to `pushd` with $1\n'>
                        <'      Example: cube_pushd ~/.ssh/\n'>
                        <'\n'>
                        <'  * cube_popd\n'>
                        <'      Equivalent to `popd`\n'>
                        <'      Example: cube_popd\n'>
                        <'\n'>
                        <'  * cube_has_role\n'>
                        <'      Return true if the role $1 is set.\n'>
                        <'      Example: cube_has_role "database_backup"\n'>
                        <'\n'>
                        <'  * cube_file_contains\n'>
                        <'      Check if the file $1 contains $2\n'>
                        <'      Example: cube_file_contains /etc/fstab nfsmount\n'>
                        <'\n'>
                        <'  * cube_stdin_contains\n'>
                        <'      Check if stdin contains $1\n'>
                        <'      Example: echo "Hello World" | cube_stdin_contains "Hello"\n'>
                        <'\n'>
                        <'  * cube_interface_ipv4_address\n'>
                        <'      Echo the IPv4 address of interface $1\n'>
                        <'      Example: cube_interface_ipv4_address eth0\n'>
                        <'\n'>
                        <'  * cube_interface_ipv6_address\n'>
                        <'      Echo the IPv6 address of interface $1\n'>
                        <'      Example: cube_interface_ipv6_address eth0\n'>
                        <'\n'>
                        <'  * cube_prompt\n'>
                        <
'      Prompt the question $1 followed by " (y/N)" and prompt for an answer.\n'
                        >
                        <
'      A blank string answer is equivalent to No. Return true if yes, false otherwise.\n'
                        >
                        <'      Example: cube_prompt "Are you sure?"\n'>
                        <'\n'>
                        <'  * cube_hostname\n'>
                        <'      Echo full hostname.\n'>
                        <'      Example: cube_hostname\n'>
                        <'\n'>
                        <'  * cube_user_exists\n'>
                        <'      Check if the $1 user exists\n'>
                        <'      Example: cube_user_exists nginx\n'>
                        <'\n'>
                        <'  * cube_create_user\n'>
                        <'      Create the user $1\n'>
                        <'      Example: cube_create_user nginx\n'>
                        <'\n'>
                        <'  * cube_group_exists\n'>
                        <'      Check if the $1 group exists\n'>
                        <'      Example: cube_group_exists nginx\n'>
                        <'\n'>
                        <'  * cube_create_group\n'>
                        <'      Create the group $1\n'>
                        <'      Example: cube_create_group nginx\n'>
                        <'\n'>
                        <'  * cube_group_contains_user\n'>
                        <'      Check if the $1 group contains the user $2\n'>
                        <'      Example: cube_group_contains_user nginx nginx\n'>
                        <'\n'>
                        <'  * cube_add_group_user\n'>
                        <'      Add the user $2 to group $1\n'>
                        <'      Example: cube_add_group_user nginx nginx\n'>
                        <'\n'>
                        <'Public Variables:\n'>
                        <'\n'>
                        <'  * POSIXCUBE_APIS_ONLY\n'>
                        <
'      Set this to any value to only source the public APIs in posixcube.sh.\n'
                        >
                        <
'      Example: POSIXCUBE_APIS_ONLY=true . posixcube.sh && cube_echo $(cube_random_number 10)\n'
                        >
                        <'  \n'>
                        <'  * POSIXCUBE_SOURCED\n'>
                        <
'      Set this to any value to only run a sub-COMMAND, most commonly `source`,\n'
                        >
                        <
'      to source in all ENVAR files, but skip actual execution of posixcube.\n'
                        >
                        <
'      Example: POSIXCUBE_SOURCED=true . posixcube.sh source; POSIXCUBE_SOURCED= ; cube_echo Test\n'
                        >
                        <'\n'>
                        <'Source: https://github.com/myplaceonline/posixcube\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {($ Id.VSub_Pound '#')}
                                {<-ne>}
                                {<0>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <p666_printf_error>
                      more_env: []
                      words: [{<p666_printf_error>} {(DQ (${ Id.VSub_At '@'))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [499 512]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Name POSIXCUBE_SOURCED))}
                                {<Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})]
                  spids: [528 546]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_VERSION='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_VERSION='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'POSIXCUBE_VERSION='> name:POSIXCUBE_VERSION)
          op: assign_op.Equal
          rhs: {<0.1>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_DEBUG='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_DEBUG='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'POSIXCUBE_DEBUG='> name:POSIXCUBE_DEBUG)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_RESET='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_RESET='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_RESET='>
              name: POSIXCUBE_COLOR_RESET
            )
          op: assign_op.Equal
          rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'x1B[0m'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_RED='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_RED='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_RED='>
              name: POSIXCUBE_COLOR_RED
            )
          op: assign_op.Equal
          rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'x1B[31m'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_GREEN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_GREEN='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_GREEN='>
              name: POSIXCUBE_COLOR_GREEN
            )
          op: assign_op.Equal
          rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'x1B[32m'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_YELLOW='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_YELLOW='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_YELLOW='>
              name: POSIXCUBE_COLOR_YELLOW
            )
          op: assign_op.Equal
          rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'x1B[33m'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_BLUE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_BLUE='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_BLUE='>
              name: POSIXCUBE_COLOR_BLUE
            )
          op: assign_op.Equal
          rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'x1B[34m'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_PURPLE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_PURPLE='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_PURPLE='>
              name: POSIXCUBE_COLOR_PURPLE
            )
          op: assign_op.Equal
          rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'x1B[35m'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_CYAN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_CYAN='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_CYAN='>
              name: POSIXCUBE_COLOR_CYAN
            )
          op: assign_op.Equal
          rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'x1B[36m'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_WHITE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_WHITE='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_COLOR_WHITE='>
              name: POSIXCUBE_COLOR_WHITE
            )
          op: assign_op.Equal
          rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'x1B[37m'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_NEWLINE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_NEWLINE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'POSIXCUBE_NEWLINE='> name:POSIXCUBE_NEWLINE)
          op: assign_op.Equal
          rhs: {(DQ <'\n'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_CUBE_NAME='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_CUBE_NAME='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_CUBE_NAME='>
              name: POSIXCUBE_CUBE_NAME
            )
          op: assign_op.Equal
          rhs: {(DQ )}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_CUBE_NAME_WITH_PREFIX='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_CUBE_NAME_WITH_PREFIX='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_CUBE_NAME_WITH_PREFIX='>
              name: POSIXCUBE_CUBE_NAME_WITH_PREFIX
            )
          op: assign_op.Equal
          rhs: {(DQ )}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_OS_UNKNOWN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_OS_UNKNOWN='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_OS_UNKNOWN='>
              name: POSIXCUBE_OS_UNKNOWN
            )
          op: assign_op.Equal
          rhs: {<-1>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_OS_LINUX='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_OS_LINUX='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'POSIXCUBE_OS_LINUX='> name:POSIXCUBE_OS_LINUX)
          op: assign_op.Equal
          rhs: {<1>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_OS_MAC_OSX='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_OS_MAC_OSX='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_OS_MAC_OSX='>
              name: POSIXCUBE_OS_MAC_OSX
            )
          op: assign_op.Equal
          rhs: {<2>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_OS_WINDOWS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_OS_WINDOWS='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_OS_WINDOWS='>
              name: POSIXCUBE_OS_WINDOWS
            )
          op: assign_op.Equal
          rhs: {<3>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_OS_FLAVOR_UNKNOWN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_OS_FLAVOR_UNKNOWN='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_OS_FLAVOR_UNKNOWN='>
              name: POSIXCUBE_OS_FLAVOR_UNKNOWN
            )
          op: assign_op.Equal
          rhs: {<-1>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_OS_FLAVOR_FEDORA='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_OS_FLAVOR_FEDORA='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_OS_FLAVOR_FEDORA='>
              name: POSIXCUBE_OS_FLAVOR_FEDORA
            )
          op: assign_op.Equal
          rhs: {<1>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_OS_FLAVOR_DEBIAN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_OS_FLAVOR_DEBIAN='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_OS_FLAVOR_DEBIAN='>
              name: POSIXCUBE_OS_FLAVOR_DEBIAN
            )
          op: assign_op.Equal
          rhs: {<2>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_OS_FLAVOR_UBUNTU='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_OS_FLAVOR_UBUNTU='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_OS_FLAVOR_UBUNTU='>
              name: POSIXCUBE_OS_FLAVOR_UBUNTU
            )
          op: assign_op.Equal
          rhs: {<3>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_SHELL_UNKNOWN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_SHELL_UNKNOWN='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_SHELL_UNKNOWN='>
              name: POSIXCUBE_SHELL_UNKNOWN
            )
          op: assign_op.Equal
          rhs: {<-1>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_SHELL_BASH='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_SHELL_BASH='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_SHELL_BASH='>
              name: POSIXCUBE_SHELL_BASH
            )
          op: assign_op.Equal
          rhs: {<1>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'POSIXCUBE_NODE_HOSTNAME='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'POSIXCUBE_NODE_HOSTNAME='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'POSIXCUBE_NODE_HOSTNAME='>
              name: POSIXCUBE_NODE_HOSTNAME
            )
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (CommandSub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Simple
                      blame_tok: <hostname>
                      more_env: []
                      words: [{<hostname>}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Eof_RParen _>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <cube_echo>
      name: cube_echo
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Name POSIXCUBE_CUBE_NAME_WITH_PREFIX))}
                                {<Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [
                        {<printf>}
                        {
                          (DQ <'['> 
                            (CommandSub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Simple
                                  blame_tok: <date>
                                  more_env: []
                                  words: [{<date>}]
                                  redirects: []
                                  do_fork: T
                                )
                              right: <Id.Eof_RParen _>
                            ) <'] ['> (${ Id.VSub_Name POSIXCUBE_COLOR_GREEN) (${ Id.VSub_Name POSIXCUBE_NODE_HOSTNAME) 
                            (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <'] '>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [710 728]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <printf>
                  more_env: []
                  words: [
                    {<printf>}
                    {
                      (DQ <'['> 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <date>
                              more_env: []
                              words: [{<date>}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        ) <'] ['> (${ Id.VSub_Name POSIXCUBE_COLOR_GREEN) (${ Id.VSub_Name POSIXCUBE_NODE_HOSTNAME) 
                        (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) (${ Id.VSub_Name POSIXCUBE_COLOR_CYAN) (${ Id.VSub_Name POSIXCUBE_CUBE_NAME_WITH_PREFIX) 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <cube_line_number>
                              more_env: []
                              words: [{<cube_line_number>} {(DQ <':'>)}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        ) (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <'] '>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_printf>
      name: cube_printf
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'cube_printf_str='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'cube_printf_str='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'cube_printf_str='>
                          name: cube_printf_str
                        )
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Name POSIXCUBE_CUBE_NAME_WITH_PREFIX))}
                                {<Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [
                        {<printf>}
                        {
                          (DQ <'['> 
                            (CommandSub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Simple
                                  blame_tok: <date>
                                  more_env: []
                                  words: [{<date>}]
                                  redirects: []
                                  do_fork: T
                                )
                              right: <Id.Eof_RParen _>
                            ) <'] ['> (${ Id.VSub_Name POSIXCUBE_COLOR_GREEN) (${ Id.VSub_Name POSIXCUBE_NODE_HOSTNAME) 
                            (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <'] '> (${ Id.VSub_Name cube_printf_str) <Id.Lit_BadBackslash '\\'> <n>
                          )
                        }
                        {(DQ (${ Id.VSub_At '@'))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [856 874]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <printf>
                  more_env: []
                  words: [
                    {<printf>}
                    {
                      (DQ <'['> 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <date>
                              more_env: []
                              words: [{<date>}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        ) <'] ['> (${ Id.VSub_Name POSIXCUBE_COLOR_GREEN) (${ Id.VSub_Name POSIXCUBE_NODE_HOSTNAME) 
                        (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) (${ Id.VSub_Name POSIXCUBE_COLOR_CYAN) (${ Id.VSub_Name POSIXCUBE_CUBE_NAME_WITH_PREFIX) 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <cube_line_number>
                              more_env: []
                              words: [{<cube_line_number>} {(DQ <':'>)}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        ) (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <'] '> (${ Id.VSub_Name cube_printf_str) 
                        <Id.Lit_BadBackslash '\\'> <n>
                      )
                    }
                    {(DQ (${ Id.VSub_At '@'))}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_error_echo>
      name: cube_error_echo
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Name POSIXCUBE_CUBE_NAME_WITH_PREFIX))}
                                {<Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [
                        {<printf>}
                        {
                          (DQ <'['> 
                            (CommandSub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Simple
                                  blame_tok: <date>
                                  more_env: []
                                  words: [{<date>}]
                                  redirects: []
                                  do_fork: T
                                )
                              right: <Id.Eof_RParen _>
                            ) <'] ['> (${ Id.VSub_Name POSIXCUBE_COLOR_RED) (${ Id.VSub_Name POSIXCUBE_NODE_HOSTNAME) 
                            (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <'] '> (${ Id.VSub_Name POSIXCUBE_COLOR_RED) <Error> (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <': '>
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [996 1014]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <printf>
                  more_env: []
                  words: [
                    {<printf>}
                    {
                      (DQ <'['> 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <date>
                              more_env: []
                              words: [{<date>}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        ) <'] ['> (${ Id.VSub_Name POSIXCUBE_COLOR_RED) (${ Id.VSub_Name POSIXCUBE_NODE_HOSTNAME) 
                        (${ Id.VSub_Name POSIXCUBE_CUBE_NAME_WITH_PREFIX) 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <cube_line_number>
                              more_env: []
                              words: [{<cube_line_number>} {(DQ <':'>)}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        ) (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <'] '> (${ Id.VSub_Name POSIXCUBE_COLOR_RED) <Error> 
                        (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <': '>
                      )
                    }
                  ]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_error_printf>
      name: cube_error_printf
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'cube_error_printf_str='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'cube_error_printf_str='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'cube_error_printf_str='>
                          name: cube_error_printf_str
                        )
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Name POSIXCUBE_CUBE_NAME_WITH_PREFIX))}
                                {<Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [
                        {<printf>}
                        {
                          (DQ <'['> 
                            (CommandSub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Simple
                                  blame_tok: <date>
                                  more_env: []
                                  words: [{<date>}]
                                  redirects: []
                                  do_fork: T
                                )
                              right: <Id.Eof_RParen _>
                            ) <'] ['> (${ Id.VSub_Name POSIXCUBE_COLOR_RED) (${ Id.VSub_Name POSIXCUBE_NODE_HOSTNAME) 
                            (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <'] '> (${ Id.VSub_Name POSIXCUBE_COLOR_RED) <Error> (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <': '> 
                            (${ Id.VSub_Name cube_error_printf_str) <Id.Lit_BadBackslash '\\'> <n>
                          )
                        }
                        {(DQ (${ Id.VSub_At '@'))}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [1161 1179]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <printf>
                  more_env: []
                  words: [
                    {<printf>}
                    {
                      (DQ <'['> 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <date>
                              more_env: []
                              words: [{<date>}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        ) <'] ['> (${ Id.VSub_Name POSIXCUBE_COLOR_RED) (${ Id.VSub_Name POSIXCUBE_NODE_HOSTNAME) 
                        (${ Id.VSub_Name POSIXCUBE_CUBE_NAME_WITH_PREFIX) 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <cube_line_number>
                              more_env: []
                              words: [{<cube_line_number>} {(DQ <':'>)}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        ) (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <'] '> (${ Id.VSub_Name POSIXCUBE_COLOR_RED) <Error> 
                        (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <': '> (${ Id.VSub_Name cube_error_printf_str) <Id.Lit_BadBackslash '\\'> <n>
                      )
                    }
                    {(DQ (${ Id.VSub_At '@'))}
                  ]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_throw>
      name: cube_throw
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_error_echo>
              more_env: []
              words: [{<cube_error_echo>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_throw_pid='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_throw_pid='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cube_throw_pid='> name:cube_throw_pid)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Dollar '$')}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <cube_command_exists>
                                  more_env: []
                                  words: [{<cube_command_exists>} {<caller>}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {<-r>}
                                    {<'/proc/'> (${ Id.VSub_Name cube_throw_pid) <'/cmdline'>}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <cube_error_echo>
                      more_env: []
                      words: [{<cube_error_echo>} {<Stack> <Id.Lit_Colon ':'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1328 1349]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <cube_command_exists>
                              more_env: []
                              words: [{<cube_command_exists>} {<caller>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'x='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'x='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <true>
                                  more_env: []
                                  words: [{<true>}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cube_error_caller='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cube_error_caller='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cube_error_caller='>
                                      name: cube_error_caller
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            blame_tok: <caller>
                                            more_env: []
                                            words: [{<caller>} {($ Id.VSub_DollarName x)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cube_error_caller_result='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cube_error_caller_result='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cube_error_caller_result='>
                                      name: cube_error_caller_result
                                    )
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_QMark '?')}
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {(${ Id.VSub_Name cube_error_caller_result)}
                                                {<-eq>}
                                                {<0>}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cube_error_caller_result_lineno='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'cube_error_caller_result_lineno='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: 
                                                <Id.Lit_VarLike 'cube_error_caller_result_lineno='>
                                              name: cube_error_caller_result_lineno
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [
                                                          {<echo>}
                                                          {(DQ (${ Id.VSub_Name cube_error_caller))}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <awk>
                                                        more_env: []
                                                        words: [{<awk>} {(SQ <'{ print $1 }'>)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cube_error_caller_result_subroutine='>
                                      pairs: [
                                        (AssignPair
                                          left: 
                                            <Id.Lit_VarLike 'cube_error_caller_result_subroutine='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: 
                                                <Id.Lit_VarLike 
'cube_error_caller_result_subroutine='
                                                >
                                              name: cube_error_caller_result_subroutine
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [
                                                          {<echo>}
                                                          {(DQ (${ Id.VSub_Name cube_error_caller))}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <awk>
                                                        more_env: []
                                                        words: [{<awk>} {(SQ <'{ print $2 }'>)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cube_error_caller_result_sourcefile='>
                                      pairs: [
                                        (AssignPair
                                          left: 
                                            <Id.Lit_VarLike 'cube_error_caller_result_sourcefile='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: 
                                                <Id.Lit_VarLike 
'cube_error_caller_result_sourcefile='
                                                >
                                              name: cube_error_caller_result_sourcefile
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [
                                                          {<echo>}
                                                          {(DQ (${ Id.VSub_Name cube_error_caller))}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <awk>
                                                        more_env: []
                                                        words: [
                                                          {<awk>}
                                                          {
                                                            (SQ 
                                                              <
'{ for(i=3;i<=NF;i++){ printf "%s ", $i }; printf "\\n" }'
                                                              >
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <sed>
                                                        more_env: []
                                                        words: [{<sed>} {(SQ <'s/ $//'>)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <cube_error_printf>
                                      more_env: []
                                      words: [
                                        {<cube_error_printf>}
                                        {
                                          (DQ <'  [func] %4s '> 
                                            (${ Id.VSub_Name cube_error_caller_result_subroutine) <' '> (${ Id.VSub_Name cube_error_caller_result_sourcefile)
                                          )
                                        }
                                        {(DQ (${ Id.VSub_Name cube_error_caller_result_lineno))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [1400 1415]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'x='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'x='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (word_part.ArithSub
                                        left: <Id.Left_DollarDParen '$(('>
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Plus
                                            left: {(${ Id.VSub_Name x)}
                                            right: {<Id.Lit_Digits 1>}
                                          )
                                        right: <Id.Right_DollarDParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  spids: [1363 1371]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<-r>}
                                {<'/proc/'> (${ Id.VSub_Name cube_throw_pid) <'/cmdline'>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Simple
                              blame_tok: <true>
                              more_env: []
                              words: [{<true>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cube_throw_cmdline='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cube_throw_cmdline='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cube_throw_cmdline='>
                                      name: cube_throw_cmdline
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            blame_tok: <cat>
                                            more_env: []
                                            words: [
                                              {<cat>}
                                              {<'/proc/'> (${ Id.VSub_Name cube_throw_pid) 
                                                <'/cmdline'>
                                              }
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cube_throw_ppid='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cube_throw_ppid='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cube_throw_ppid='>
                                      name: cube_throw_ppid
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <grep>
                                                more_env: []
                                                words: [
                                                  {<grep>}
                                                  {<PPid>}
                                                  {<'/proc/'> (${ Id.VSub_Name cube_throw_pid) 
                                                    <'/status'>
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <awk>
                                                more_env: []
                                                words: [{<awk>} {(SQ <'{ print $2; }'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <cube_error_printf>
                              more_env: []
                              words: [
                                {<cube_error_printf>}
                                {(DQ <'  [pid] %5s '> (${ Id.VSub_Name cube_throw_cmdline))}
                                {(${ Id.VSub_Name cube_throw_pid)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {(DQ (${ Id.VSub_Name cube_throw_pid))}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ <1>)}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                                  spids: [1612 1631]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cube_throw_pid='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cube_throw_pid='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cube_throw_pid='>
                                      name: cube_throw_pid
                                    )
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name cube_throw_ppid)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  spids: [1538 1553]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_line_number>
      name: cube_line_number
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <cube_command_exists>
                              more_env: []
                              words: [{<cube_command_exists>} {<caller>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'x='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'x='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <true>
                                  more_env: []
                                  words: [{<true>}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cube_api_caller_output='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cube_api_caller_output='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cube_api_caller_output='>
                                      name: cube_api_caller_output
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            blame_tok: <caller>
                                            more_env: []
                                            words: [{<caller>} {($ Id.VSub_DollarName x)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cube_api_caller_result='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cube_api_caller_result='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cube_api_caller_result='>
                                      name: cube_api_caller_result
                                    )
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_QMark '?')}
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {(${ Id.VSub_Name cube_api_caller_result)}
                                                {<-eq>}
                                                {<0>}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cube_api_caller_result_lineno='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'cube_api_caller_result_lineno='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'cube_api_caller_result_lineno='>
                                              name: cube_api_caller_result_lineno
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [
                                                          {<echo>}
                                                          {
                                                            (DQ 
                                                              (${ Id.VSub_Name cube_api_caller_output)
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <awk>
                                                        more_env: []
                                                        words: [{<awk>} {(SQ <'{ print $1 }'>)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cube_api_caller_result_subroutine='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'cube_api_caller_result_subroutine='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: 
                                                <Id.Lit_VarLike 'cube_api_caller_result_subroutine='>
                                              name: cube_api_caller_result_subroutine
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [
                                                          {<echo>}
                                                          {
                                                            (DQ 
                                                              (${ Id.VSub_Name cube_api_caller_output)
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <awk>
                                                        more_env: []
                                                        words: [{<awk>} {(SQ <'{ print $2 }'>)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cube_api_caller_result_sourcefile='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'cube_api_caller_result_sourcefile='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: 
                                                <Id.Lit_VarLike 'cube_api_caller_result_sourcefile='>
                                              name: cube_api_caller_result_sourcefile
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [
                                                          {<echo>}
                                                          {
                                                            (DQ 
                                                              (${ Id.VSub_Name cube_api_caller_output)
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <awk>
                                                        more_env: []
                                                        words: [
                                                          {<awk>}
                                                          {
                                                            (SQ 
                                                              <
'{ for(i=3;i<=NF;i++){ printf "%s ", $i }; printf "\\n" }'
                                                              >
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <sed>
                                                        more_env: []
                                                        words: [{<sed>} {(SQ <'s/ $//'>)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: 
                                        <Id.Lit_VarLike 
'cube_api_caller_result_sourcefile_basename='
                                        >
                                      pairs: [
                                        (AssignPair
                                          left: 
                                            <Id.Lit_VarLike 
'cube_api_caller_result_sourcefile_basename='
                                            >
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: 
                                                <Id.Lit_VarLike 
'cube_api_caller_result_sourcefile_basename='
                                                >
                                              name: cube_api_caller_result_sourcefile_basename
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <basename>
                                                    more_env: []
                                                    words: [
                                                      {<basename>}
                                                      {
                                                        (DQ 
                                                          (${ Id.VSub_Name 
cube_api_caller_result_sourcefile
                                                          )
                                                        )
                                                      }
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {
                                                          (DQ 
                                                            (${ Id.VSub_Name 
cube_api_caller_result_sourcefile_basename
                                                            )
                                                          )
                                                        }
                                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                        {(DQ <posixcube.sh>)}
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <Id.Lit_LBracket '['>
                                                              more_env: []
                                                              words: [
                                                                {<Id.Lit_LBracket '['>}
                                                                {(DQ (${ Id.VSub_Number 1))}
                                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                                {(DQ )}
                                                                {<Id.Lit_RBracket ']'>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <printf>
                                                      more_env: []
                                                      words: [
                                                        {<printf>}
                                                        {(DQ <'%s'>)}
                                                        {(DQ (${ Id.VSub_Number 1))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [1850 1869]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <printf>
                                              more_env: []
                                              words: [
                                                {<printf>}
                                                {(DQ <'%s'>)}
                                                {(DQ (${ Id.VSub_Name cube_api_caller_result_lineno))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          spids: [1827 1847]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [1729 1744]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'x='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'x='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (word_part.ArithSub
                                        left: <Id.Left_DollarDParen '$(('>
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Plus
                                            left: {(${ Id.VSub_Name x)}
                                            right: {<Id.Lit_Digits 1>}
                                          )
                                        right: <Id.Right_DollarDParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  spids: [1692 1700]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_check_return>
      name: cube_check_return
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_check_return_val='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_check_return_val='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_check_return_val='>
                      name: cube_check_return_val
                    )
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_QMark '?')}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(${ Id.VSub_Name cube_check_return_val)}
                                {<-ne>}
                                {<0>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_check_return_info='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_check_return_info='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_check_return_info='>
                              name: cube_check_return_info
                            )
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ (${ Id.VSub_Star '*'))}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ )}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cube_check_return_info='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cube_check_return_info='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cube_check_return_info='>
                                      name: cube_check_return_info
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <' ('> (${ Id.VSub_Star '*') <')'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1986 2005]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <cube_throw>
                      more_env: []
                      words: [
                        {<cube_throw>}
                        {
                          (DQ <'Previous command failed with code '> 
                            (${ Id.VSub_Name cube_check_return_val) (${ Id.VSub_Name cube_check_return_info)
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1963 1978]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Return return>
              arg_word: {(${ Id.VSub_Name cube_check_return_val)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_append_str>
      name: cube_append_str
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Number 1))}
                                {<Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ (${ Id.VSub_Number 2))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [2096 2114]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.If
                  if_kw: <Id.KW_If if>
                  arms: [
                    (IfArm
                      keyword: <Id.KW_If if>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {(DQ (${ Id.VSub_Number 3))}
                                    {<Id.Lit_Equals '='>}
                                    {(DQ )}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      then_kw: <Id.KW_Then then>
                      action: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ (${ Id.VSub_Number 1) <' '> (${ Id.VSub_Number 2))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      spids: [2129 2147]
                    )
                  ]
                  else_kw: <Id.KW_Else else>
                  else_action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ (${ Id.VSub_Number 1) (${ Id.VSub_Number 3) (${ Id.VSub_Number 2))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  fi_kw: <Id.KW_Fi fi>
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_command_exists>
      name: cube_command_exists
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <command>
              more_env: []
              words: [{<command>} {<-v>} {(${ Id.VSub_Number 1)}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
                (Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
              ]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_dir_exists>
      name: cube_dir_exists
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_LBracket '['>
              more_env: []
              words: [{<Id.Lit_LBracket '['>} {<-d>} {(DQ (${ Id.VSub_Number 1))} {<Id.Lit_RBracket ']'>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_file_exists>
      name: cube_file_exists
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_LBracket '['>
              more_env: []
              words: [{<Id.Lit_LBracket '['>} {<-r>} {(DQ (${ Id.VSub_Number 1))} {<Id.Lit_RBracket ']'>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_operating_system>
      name: cube_operating_system
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <uname>
                              more_env: []
                              words: [{<uname>} {<-s>}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Linux>
                  pattern: (pat.Words words:[{<Linux>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(${ Id.VSub_Name POSIXCUBE_OS_LINUX)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Darwin>
                  pattern: (pat.Words words:[{<Darwin>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(${ Id.VSub_Name POSIXCUBE_OS_MAC_OSX)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <CYGWIN>
                  pattern: 
                    (pat.Words
                      words: [
                        {<CYGWIN> <Id.Lit_Star '*'>}
                        {<MINGW32> <Id.Lit_Star '*'>}
                        {<MSYS> <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(${ Id.VSub_Name POSIXCUBE_OS_WINDOWS)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(${ Id.VSub_Name POSIXCUBE_OS_UNKNOWN)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_operating_system_has_flavor>
      name: cube_operating_system_has_flavor
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ (${ Id.VSub_Number 1))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DollarBrace '${'>
                  pattern: (pat.Words words:[{(${ Id.VSub_Name POSIXCUBE_OS_FLAVOR_FEDORA)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <cube_file_exists>
                                      more_env: []
                                      words: [{<cube_file_exists>} {(DQ <'/etc/fedora-release'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [2516 2525]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Left_DollarBrace '${'>
                  pattern: (pat.Words words:[{(${ Id.VSub_Name POSIXCUBE_OS_FLAVOR_UBUNTU)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <cube_file_exists>
                                      more_env: []
                                      words: [{<cube_file_exists>} {(DQ <'/etc/lsb-release'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [2545 2554]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Left_DollarBrace '${'>
                  pattern: (pat.Words words:[{(${ Id.VSub_Name POSIXCUBE_OS_FLAVOR_DEBIAN)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <cube_file_contains>
                                          more_env: []
                                          words: [
                                            {<cube_file_contains>}
                                            {<'/etc/os-release'>}
                                            {
                                              (DQ <'NAME='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) <Debian>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <cube_file_exists>
                                          more_env: []
                                          words: [{<cube_file_exists>} {(DQ <'/etc/lsb-release'>)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [2574 2595]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <cube_throw>
                      more_env: []
                      words: [{<cube_throw>} {(DQ <'Unknown flavor '> (${ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_shell>
      name: cube_shell
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ ($ Id.VSub_DollarName BASH))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(${ Id.VSub_Name POSIXCUBE_SHELL_BASH)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [2662 2679]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(${ Id.VSub_Name POSIXCUBE_SHELL_UNKNOWN)}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_check_numargs>
      name: cube_check_numargs
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'cube_check_numargs_expected='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'cube_check_numargs_expected='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'cube_check_numargs_expected='>
                          name: cube_check_numargs_expected
                        )
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(${ Id.VSub_Pound '#')}
                    {<-lt>}
                    {(${ Id.VSub_Name cube_check_numargs_expected)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <cube_throw>
                  more_env: []
                  words: [
                    {<cube_throw>}
                    {
                      (DQ <'Expected '> (${ Id.VSub_Name cube_check_numargs_expected) 
                        <' arguments, received '> (${ Id.VSub_Pound '#') <.>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_service>
      name: cube_service
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <cube_command_exists>
                              more_env: []
                              words: [{<cube_command_exists>} {<systemctl>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ (${ Id.VSub_Number 1))}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ <daemon-reload>)}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <systemctl>
                                  more_env: []
                                  words: [{<systemctl>} {($ Id.VSub_Number 1)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <cube_check_return>
                                  more_env: []
                                  words: [{<cube_check_return>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          ]
                          spids: [2833 2852]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <systemctl>
                              more_env: []
                              words: [{<systemctl>} {($ Id.VSub_Number 1)} {($ Id.VSub_Number 2)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <cube_check_return>
                              more_env: []
                              words: [{<cube_check_return>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [2822 2830]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <cube_command_exists>
                              more_env: []
                              words: [{<cube_command_exists>} {<service>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ (${ Id.VSub_Number 1))}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ <daemon-reload>)}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <service>
                                  more_env: []
                                  words: [{<service>} {($ Id.VSub_Number 2)} {($ Id.VSub_Number 1)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <cube_check_return>
                                  more_env: []
                                  words: [{<cube_check_return>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          ]
                          spids: [2892 2912]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [2881 2889]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <cube_throw>
                  more_env: []
                  words: [{<cube_throw>} {(DQ <'Could not find service program'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Number 2))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ (${ Id.VSub_Number 1))})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <stop>
                          pattern: (pat.Words words:[{<stop>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cube_service_verb='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cube_service_verb='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cube_service_verb='>
                                      name: cube_service_verb
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <stopped>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <enable>
                          pattern: (pat.Words words:[{<enable>} {<disable>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cube_service_verb='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cube_service_verb='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cube_service_verb='>
                                      name: cube_service_verb
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Number 1) <d>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cube_service_verb='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cube_service_verb='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cube_service_verb='>
                                      name: cube_service_verb
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Number 1) <ed>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <cube_echo>
                      more_env: []
                      words: [
                        {<cube_echo>}
                        {
                          (DQ 
                            (CommandSub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Pipeline
                                  children: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [{<echo>} {(${ Id.VSub_Name cube_service_verb)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <cut>
                                      more_env: []
                                      words: [{<cut>} {<-c1>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <tr>
                                      more_env: []
                                      words: [
                                        {<tr>}
                                        {<Id.Lit_LBracket '['> <a-z> <Id.Lit_RBracket ']'>}
                                        {<Id.Lit_LBracket '['> <A-Z> <Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                )
                              right: <Id.Eof_RParen _>
                            ) 
                            (CommandSub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Pipeline
                                  children: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [{<echo>} {(${ Id.VSub_Name cube_service_verb)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <cut>
                                      more_env: []
                                      words: [{<cut>} {<-c2->}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  ops: [<Id.Op_Pipe _>]
                                )
                              right: <Id.Eof_RParen _>
                            ) <' '> ($ Id.VSub_Number 2) <' service'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [2942 2961]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <cube_echo>
                  more_env: []
                  words: [{<cube_echo>} {(DQ <'Executed '> ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_service_exists>
      name: cube_service_exists
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <cube_command_exists>
                              more_env: []
                              words: [{<cube_command_exists>} {<systemctl>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_service_exists_output='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_service_exists_output='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_service_exists_output='>
                              name: cube_service_exists_output
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Simple
                                      blame_tok: <systemctl>
                                      more_env: []
                                      words: [{<systemctl>} {<status>} {(${ Id.VSub_Number 1)}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '2>&'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<1>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Pipeline
                      children: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ (${ Id.VSub_Name cube_service_exists_output))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <grep>
                          more_env: []
                          words: [{<grep>} {<-l>} {<loaded>}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                            (Redir
                              op: <Id.Redir_GreatAnd '2>&'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<1>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Return return>
                      arg_word: {($ Id.VSub_QMark '?')}
                    )
                  ]
                  spids: [3127 3135]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <cube_throw>
                  more_env: []
                  words: [{<cube_throw>} {(DQ <'Not implemented'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_package>
      name: cube_package
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <cube_command_exists>
                              more_env: []
                              words: [{<cube_command_exists>} {<dnf>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <cube_echo>
                      more_env: []
                      words: [{<cube_echo>} {(DQ <'Executing dnf -y '> (${ Id.VSub_At '@'))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <dnf>
                          more_env: []
                          words: [{<dnf>} {<-y>} {(DQ (${ Id.VSub_At '@'))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [3242 3250]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <cube_command_exists>
                              more_env: []
                              words: [{<cube_command_exists>} {<yum>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <cube_echo>
                      more_env: []
                      words: [{<cube_echo>} {(DQ <'Executing yum -y '> (${ Id.VSub_At '@'))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <yum>
                          more_env: []
                          words: [{<yum>} {<-y>} {(DQ (${ Id.VSub_At '@'))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [3278 3286]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <cube_command_exists>
                              more_env: []
                              words: [{<cube_command_exists>} {<apt-get>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <cube_echo>
                      more_env: []
                      words: [{<cube_echo>} {(DQ <'Executing apt-get -y '> (${ Id.VSub_At '@'))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <apt-get>
                          more_env: [
                            (EnvPair
                              left: <Id.Lit_VarLike 'DEBIAN_FRONTEND='>
                              name: DEBIAN_FRONTEND
                              val: {<noninteractive>}
                            )
                          ]
                          words: [{<apt-get>} {<-y>} {(DQ (${ Id.VSub_At '@'))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [3314 3322]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <cube_throw>
                  more_env: []
                  words: [
                    {<cube_throw>}
                    {(DQ <'cube_package has not implemented your operating system yet'>)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_current_script_name>
      name: cube_current_script_name
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <basename>
              more_env: []
              words: [{<basename>} {(DQ ($ Id.VSub_Number 0))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_current_script_abs_path>
      name: cube_current_script_abs_path
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_current_script_abs_path_dirname='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_current_script_abs_path_dirname='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_current_script_abs_path_dirname='>
                      name: cube_current_script_abs_path_dirname
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.CommandList
                            children: [
                              (command.Sentence
                                child: 
                                  (command.Simple
                                    blame_tok: <cd>
                                    more_env: []
                                    words: [
                                      {<cd>}
                                      {
                                        (DQ 
                                          (CommandSub
                                            left_token: <Id.Left_DollarParen '$('>
                                            child: 
                                              (command.Simple
                                                blame_tok: <dirname>
                                                more_env: []
                                                words: [{<dirname>} {(DQ ($ Id.VSub_Number 0))}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            right: <Id.Eof_RParen _>
                                          )
                                        )
                                      }
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                terminator: <Id.Op_Semi _>
                              )
                              (command.Simple
                                blame_tok: <pwd>
                                more_env: []
                                words: [{<pwd>} {<-P>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ (${ Id.VSub_Name cube_current_script_abs_path_dirname) <'/'> 
                    (CommandSub
                      left_token: <Id.Left_DollarParen '$('>
                      child: 
                        (command.Simple
                          blame_tok: <cube_current_script_name>
                          more_env: []
                          words: [{<cube_current_script_name>}]
                          redirects: []
                          do_fork: T
                        )
                      right: <Id.Eof_RParen _>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_file_size>
      name: cube_file_size
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <cube_file_exists>
                              more_env: []
                              words: [{<cube_file_exists>} {(DQ (${ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <wc>
                      more_env: []
                      words: [{<wc>} {<-c>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {(DQ (${ Id.VSub_Number 1))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [3503 3515]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <cube_throw>
                  more_env: []
                  words: [{<cube_throw>} {(DQ <'Could not find or read file '> (${ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_expand_parameters>
      name: cube_expand_parameters
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_expand_parameters_is_bash='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_expand_parameters_is_bash='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_expand_parameters_is_bash='>
                      name: cube_expand_parameters_is_bash
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (command.Simple
                                        blame_tok: <cube_shell>
                                        more_env: []
                                        words: [{<cube_shell>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                                {<-eq>}
                                {(${ Id.VSub_Name POSIXCUBE_SHELL_BASH)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_expand_parameters_is_bash='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_expand_parameters_is_bash='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_expand_parameters_is_bash='>
                              name: cube_expand_parameters_is_bash
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [3581 3598]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <read>
                              more_env: [(EnvPair left:<Id.Lit_VarLike 'IFS='> name:IFS val:{(SQ )})]
                              words: [{<read>} {<-r>} {<cube_expand_parameters_line>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<-n>}
                                {(DQ (${ Id.VSub_Name cube_expand_parameters_line))}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_expand_parameters_line_escaped='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_expand_parameters_line_escaped='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_expand_parameters_line_escaped='>
                              name: cube_expand_parameters_line_escaped
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <printf>
                                        more_env: []
                                        words: [
                                          {<printf>}
                                          {<Id.Lit_Other '%'> <s>}
                                          {(DQ (${ Id.VSub_Name cube_expand_parameters_line))}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <tr>
                                        more_env: []
                                        words: [{<tr>} {(SQ <'`([$\\\\"'>)} {(SQ <'\\1\\2\\3\\4\\5\\6'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {($ Id.VSub_DollarName cube_expand_parameters_is_bash)}
                                        {<-eq>}
                                        {<1>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cube_expand_parameters_line_escaped='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cube_expand_parameters_line_escaped='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cube_expand_parameters_line_escaped='>
                                      name: cube_expand_parameters_line_escaped
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name cube_expand_parameters_line_escaped>
                                        var_name: cube_expand_parameters_line_escaped
                                        suffix_op: 
                                          (suffix_op.PatSub
                                            pat: 
                                              {
                                                (SingleQuoted
                                                  left: <Id.Left_DollarSingleQuote '$\''>
                                                  tokens: [<Id.Char_Octal3 '\\4'>]
                                                  right: <Id.Right_SingleQuote '\''>
                                                ) <'{'>
                                              }
                                            replace: 
                                              {
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\$'>
                                                  ch: '$'
                                                ) <'{'>
                                              }
                                            replace_mode: Id.Lit_Slash
                                            slash_tok: <Id.VOp2_Slash _>
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [3693 3706]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'cube_expand_parameters_line_escaped='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'cube_expand_parameters_line_escaped='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'cube_expand_parameters_line_escaped='>
                                  name: cube_expand_parameters_line_escaped
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (CommandSub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (command.Simple
                                            blame_tok: <printf>
                                            more_env: []
                                            words: [
                                              {<printf>}
                                              {<Id.Lit_Other '%'> <s>}
                                              {
                                                (DQ 
                                                  (${ Id.VSub_Name 
cube_expand_parameters_line_escaped
                                                  )
                                                )
                                              }
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                          (command.Simple
                                            blame_tok: <sed>
                                            more_env: []
                                            words: [{<sed>} {(SQ <'s/\\([^\\x05]\\)\\x04{/\\1${/g'>)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                          (command.Simple
                                            blame_tok: <sed>
                                            more_env: []
                                            words: [{<sed>} {(SQ <'s/^\\x04{/${/g'>)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        ]
                                        ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                      )
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'cube_expand_parameters_output='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'cube_expand_parameters_output='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'cube_expand_parameters_output='>
                                  name: cube_expand_parameters_output
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (CommandSub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (command.Simple
                                        blame_tok: <eval>
                                        more_env: []
                                        words: [
                                          {<eval>}
                                          {
                                            (DQ <'printf \'%s'> <Id.Lit_BadBackslash '\\'> <'n\' '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                                ch: '"'
                                              ) (${ Id.VSub_Name cube_expand_parameters_line_escaped) 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                                ch: '"'
                                              )
                                            )
                                          }
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [
                            {<cube_check_return>}
                            {(DQ (${ Id.VSub_Name cube_expand_parameters_line_escaped))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.Pipeline
                      children: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ (${ Id.VSub_Name cube_expand_parameters_output))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <tr>
                          more_env: []
                          words: [{<tr>} {(SQ <'\\1\\2\\3\\4\\5\\6'>)} {(SQ <'`([$\\\\"'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_read_heredoc>
      name: cube_read_heredoc
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_read_heredoc_first='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_read_heredoc_first='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_read_heredoc_first='>
                      name: cube_read_heredoc_first
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_read_heredoc_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_read_heredoc_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_read_heredoc_result='>
                      name: cube_read_heredoc_result
                    )
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <read>
                          more_env: [(EnvPair left:<Id.Lit_VarLike 'IFS='> name:IFS val:{(SQ <'\\n'>)})]
                          words: [{<read>} {<-r>} {<cube_read_heredoc_line>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(${ Id.VSub_Name cube_read_heredoc_first)}
                                        {<-eq>}
                                        {<1>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cube_read_heredoc_result='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cube_read_heredoc_result='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cube_read_heredoc_result='>
                                      name: cube_read_heredoc_result
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name cube_read_heredoc_line))}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cube_read_heredoc_first='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cube_read_heredoc_first='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cube_read_heredoc_first='>
                                      name: cube_read_heredoc_first
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [3872 3887]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'cube_read_heredoc_result='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'cube_read_heredoc_result='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'cube_read_heredoc_result='>
                                  name: cube_read_heredoc_result
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ (${ Id.VSub_Name cube_read_heredoc_result) 
                                    (${ Id.VSub_Name POSIXCUBE_NEWLINE) (${ Id.VSub_Name cube_read_heredoc_line)
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_set_file_contents>
      name: cube_set_file_contents
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<2>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'cube_set_file_contents_target_file='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'cube_set_file_contents_target_file='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'cube_set_file_contents_target_file='>
                          name: cube_set_file_contents_target_file
                        )
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_Number 1))}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'cube_set_file_contents_input_file='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'cube_set_file_contents_input_file='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'cube_set_file_contents_input_file='>
                          name: cube_set_file_contents_input_file
                        )
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_Number 1))}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_set_file_contents_debug='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_set_file_contents_debug='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_set_file_contents_debug='>
                      name: cube_set_file_contents_debug
                    )
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_Name cube_set_file_contents_input_file))}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_set_file_contents_needs_replace='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_set_file_contents_needs_replace='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_set_file_contents_needs_replace='>
                      name: cube_set_file_contents_needs_replace
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_set_file_contents_input_file_needs_remove='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_set_file_contents_input_file_needs_remove='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_set_file_contents_input_file_needs_remove='>
                      name: cube_set_file_contents_input_file_needs_remove
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              negated: <Id.KW_Bang '!'>
                              children: [
                                (command.Simple
                                  blame_tok: <cube_file_exists>
                                  more_env: []
                                  words: [
                                    {<cube_file_exists>}
                                    {(DQ (${ Id.VSub_Name cube_set_file_contents_input_file))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <cube_throw>
                      more_env: []
                      words: [
                        {<cube_throw>}
                        {
                          (DQ <'Could not find or read input '> 
                            (${ Id.VSub_Name cube_set_file_contents_input_file)
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [4017 4031]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <cube_ensure_directory>
              more_env: []
              words: [
                {<cube_ensure_directory>}
                {
                  (DQ 
                    (CommandSub
                      left_token: <Id.Left_DollarParen '$('>
                      child: 
                        (command.Simple
                          blame_tok: <dirname>
                          more_env: []
                          words: [
                            {<dirname>}
                            {(DQ (${ Id.VSub_Name cube_set_file_contents_target_file))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      right: <Id.Eof_RParen _>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_set_file_contents_input_file_is_template='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_set_file_contents_input_file_is_template='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_set_file_contents_input_file_is_template='>
                      name: cube_set_file_contents_input_file_is_template
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <expr>
                            more_env: []
                            words: [
                              {<expr>}
                              {(DQ (${ Id.VSub_Name cube_set_file_contents_input_file))}
                              {<Id.Lit_Colon ':'>}
                              {(SQ <'.*\\.template$'>)}
                            ]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(${ Id.VSub_Name cube_set_file_contents_input_file_is_template)}
                                {<-ne>}
                                {<0>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_set_file_contents_input_file_original='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_set_file_contents_input_file_original='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_set_file_contents_input_file_original='>
                              name: cube_set_file_contents_input_file_original
                            )
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name cube_set_file_contents_input_file))}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_set_file_contents_input_file='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_set_file_contents_input_file='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_set_file_contents_input_file='>
                              name: cube_set_file_contents_input_file
                            )
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name cube_set_file_contents_input_file) <.tmp>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <cube_echo>
                      more_env: []
                      words: [
                        {<cube_echo>}
                        {
                          (DQ <'Expanding parameters of '> 
                            (${ Id.VSub_Name cube_set_file_contents_input_file_original)
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <cube_expand_parameters>
                          more_env: []
                          words: [{<cube_expand_parameters>}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Less '<'>
                              loc: (redir_loc.Fd fd:0)
                              arg: {(DQ (${ Id.VSub_Name cube_set_file_contents_input_file_original))}
                            )
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {(DQ (${ Id.VSub_Name cube_set_file_contents_input_file))}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.Simple
                      blame_tok: <cube_echo>
                      more_env: []
                      words: [{<cube_echo>} {(DQ <'Expansion complete'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_set_file_contents_input_file_needs_remove='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_set_file_contents_input_file_needs_remove='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: 
                                <Id.Lit_VarLike 'cube_set_file_contents_input_file_needs_remove='>
                              name: cube_set_file_contents_input_file_needs_remove
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [4084 4099]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <cube_file_exists>
                              more_env: []
                              words: [
                                {<cube_file_exists>}
                                {(DQ (${ Id.VSub_Name cube_set_file_contents_target_file))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_set_file_contents_target_file_size='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_set_file_contents_target_file_size='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_set_file_contents_target_file_size='>
                              name: cube_set_file_contents_target_file_size
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    blame_tok: <cube_file_size>
                                    more_env: []
                                    words: [
                                      {<cube_file_size>}
                                      {(DQ (${ Id.VSub_Name cube_set_file_contents_target_file))}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_set_file_contents_input_file_size='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_set_file_contents_input_file_size='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_set_file_contents_input_file_size='>
                              name: cube_set_file_contents_input_file_size
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    blame_tok: <cube_file_size>
                                    more_env: []
                                    words: [
                                      {<cube_file_size>}
                                      {(DQ (${ Id.VSub_Name cube_set_file_contents_input_file))}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(${ Id.VSub_Name POSIXCUBE_DEBUG)}
                                        {<-eq>}
                                        {<1>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <cube_echo>
                              more_env: []
                              words: [
                                {<cube_echo>}
                                {
                                  (DQ <'Target file '> 
                                    (${ Id.VSub_Name cube_set_file_contents_target_file) <' exists. Target size: '> (${ Id.VSub_Name cube_set_file_contents_target_file_size) 
                                    <', source size: '> (${ Id.VSub_Name cube_set_file_contents_input_file_size)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [4260 4275]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(${ Id.VSub_Name cube_set_file_contents_target_file_size)}
                                        {<-eq>}
                                        {(${ Id.VSub_Name cube_set_file_contents_input_file_size)}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cube_set_file_contents_target_file_cksum='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cube_set_file_contents_target_file_cksum='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: 
                                        <Id.Lit_VarLike 'cube_set_file_contents_target_file_cksum='>
                                      name: cube_set_file_contents_target_file_cksum
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <cksum>
                                                more_env: []
                                                words: [
                                                  {<cksum>}
                                                  {
                                                    (DQ 
                                                      (${ Id.VSub_Name 
cube_set_file_contents_target_file
                                                      )
                                                    )
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <awk>
                                                more_env: []
                                                words: [{<awk>} {(SQ <'{print $1}'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cube_set_file_contents_input_file_cksum='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cube_set_file_contents_input_file_cksum='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: 
                                        <Id.Lit_VarLike 'cube_set_file_contents_input_file_cksum='>
                                      name: cube_set_file_contents_input_file_cksum
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <cksum>
                                                more_env: []
                                                words: [
                                                  {<cksum>}
                                                  {
                                                    (DQ 
                                                      (${ Id.VSub_Name 
cube_set_file_contents_input_file
                                                      )
                                                    )
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <awk>
                                                more_env: []
                                                words: [{<awk>} {(SQ <'{print $1}'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {(${ Id.VSub_Name POSIXCUBE_DEBUG)}
                                                {<-eq>}
                                                {<1>}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <cube_echo>
                                      more_env: []
                                      words: [
                                        {<cube_echo>}
                                        {
                                          (DQ <'Target cksum: '> 
                                            (${ Id.VSub_Name cube_set_file_contents_target_file_cksum) <', source cksum: '> (${ Id.VSub_Name cube_set_file_contents_input_file_cksum)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [4367 4382]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {
                                                  (DQ 
                                                    (${ Id.VSub_Name 
cube_set_file_contents_target_file_cksum
                                                    )
                                                  )
                                                }
                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                {
                                                  (DQ 
                                                    (${ Id.VSub_Name 
cube_set_file_contents_input_file_cksum
                                                    )
                                                  )
                                                }
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cube_set_file_contents_needs_replace='>
                                      pairs: [
                                        (AssignPair
                                          left: 
                                            <Id.Lit_VarLike 'cube_set_file_contents_needs_replace='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: 
                                                <Id.Lit_VarLike 
'cube_set_file_contents_needs_replace='
                                                >
                                              name: cube_set_file_contents_needs_replace
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [4404 4426]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [4301 4318]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'cube_set_file_contents_needs_replace='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'cube_set_file_contents_needs_replace='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'cube_set_file_contents_needs_replace='>
                                  name: cube_set_file_contents_needs_replace
                                )
                              op: assign_op.Equal
                              rhs: {<1>}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [4213 4225]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'cube_set_file_contents_needs_replace='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'cube_set_file_contents_needs_replace='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'cube_set_file_contents_needs_replace='>
                          name: cube_set_file_contents_needs_replace
                        )
                      op: assign_op.Equal
                      rhs: {<1>}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(${ Id.VSub_Name cube_set_file_contents_needs_replace)}
                                {<-eq>}
                                {<1>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <cube_echo>
                      more_env: []
                      words: [
                        {<cube_echo>}
                        {
                          (DQ <'Updating file contents of '> 
                            (${ Id.VSub_Name cube_set_file_contents_target_file) <' with '> (${ Id.VSub_Name cube_set_file_contents_debug)
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <cp>
                          more_env: []
                          words: [
                            {<cp>}
                            {(DQ (${ Id.VSub_Name cube_set_file_contents_input_file))}
                            {(DQ (${ Id.VSub_Name cube_set_file_contents_target_file))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {
                                          (${ Id.VSub_Name 
cube_set_file_contents_input_file_needs_remove
                                          )
                                        }
                                        {<-eq>}
                                        {<1>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <rm>
                                  more_env: []
                                  words: [
                                    {<rm>}
                                    {<-f>}
                                    {(DQ (${ Id.VSub_Name cube_set_file_contents_input_file))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <cube_check_return>
                                  more_env: []
                                  words: [{<cube_check_return>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          ]
                          spids: [4509 4525]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [4457 4473]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.If
                  if_kw: <Id.KW_If if>
                  arms: [
                    (IfArm
                      keyword: <Id.KW_If if>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {
                                      (${ Id.VSub_Name cube_set_file_contents_input_file_needs_remove)
                                    }
                                    {<-eq>}
                                    {<1>}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      then_kw: <Id.KW_Then then>
                      action: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <rm>
                              more_env: []
                              words: [
                                {<rm>}
                                {<-f>}
                                {(DQ (${ Id.VSub_Name cube_set_file_contents_input_file))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <cube_check_return>
                              more_env: []
                              words: [{<cube_check_return>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                      ]
                      spids: [4554 4570]
                    )
                  ]
                  else_action: []
                  fi_kw: <Id.KW_Fi fi>
                  redirects: []
                )
                (command.ControlFlow
                  keyword: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_random_number>
      name: cube_random_number
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ )}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <awk>
                  more_env: []
                  words: [
                    {<awk>}
                    {(DQ <'{ srand(); print int('> (${ Id.VSub_Number 1) <' * rand()) + 1; }'>)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_tmpdir>
      name: cube_tmpdir
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'/tmp/'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_set_file_contents_string>
      name: cube_set_file_contents_string
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<2>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'cube_set_file_contents_target_file='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'cube_set_file_contents_target_file='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'cube_set_file_contents_target_file='>
                          name: cube_set_file_contents_target_file
                        )
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_Number 1))}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_set_file_contents_tmp='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_set_file_contents_tmp='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_set_file_contents_tmp='>
                      name: cube_set_file_contents_tmp
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <cube_tmpdir>
                              more_env: []
                              words: [{<cube_tmpdir>}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        ) <'/tmpcontents_'> 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <cube_random_number>
                              more_env: []
                              words: [{<cube_random_number>} {<10000>}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        ) <.template>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ (${ Id.VSub_Name cube_set_file_contents_tmp))}
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <cube_set_file_contents>
              more_env: []
              words: [
                {<cube_set_file_contents>}
                {(DQ (${ Id.VSub_Name cube_set_file_contents_target_file))}
                {(DQ (${ Id.VSub_Name cube_set_file_contents_tmp))}
                {(DQ <'from string'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_set_file_contents_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_set_file_contents_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_set_file_contents_result='>
                      name: cube_set_file_contents_result
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {(DQ (${ Id.VSub_Name cube_set_file_contents_tmp))}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Return return>
              arg_word: {(${ Id.VSub_Name cube_set_file_contents_result)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_readlink>
      name: cube_readlink
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_readlink_target='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_readlink_target='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_readlink_target='>
                      name: cube_readlink_target
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'cube_readlink_path='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'cube_readlink_path='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'cube_readlink_path='>
                          name: cube_readlink_path
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.AndOr
                                children: [
                                  (command.Simple
                                    blame_tok: <cd>
                                    more_env: []
                                    words: [
                                      {<cd>}
                                      {<-P>}
                                      {<-->}
                                      {
                                        (DQ 
                                          (CommandSub
                                            left_token: <Id.Left_DollarParen '$('>
                                            child: 
                                              (command.Simple
                                                blame_tok: <dirname>
                                                more_env: []
                                                words: [
                                                  {<dirname>}
                                                  {<-->}
                                                  {(DQ (${ Id.VSub_Name cube_readlink_target))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            right: <Id.Eof_RParen _>
                                          )
                                        )
                                      }
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <pwd>
                                    more_env: []
                                    words: [{<pwd>} {<-P>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_DAmp _>]
                              )
                            right: <Id.Eof_RParen _>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'cube_readlink_path='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'cube_readlink_path='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'cube_readlink_path='>
                          name: cube_readlink_path
                        )
                      op: assign_op.Equal
                      rhs: 
                        {(${ Id.VSub_Name cube_readlink_path) <'/'> 
                          (CommandSub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Simple
                                blame_tok: <basename>
                                more_env: []
                                words: [{<basename>} {<-->} {(DQ (${ Id.VSub_Name cube_readlink_target))}]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Eof_RParen _>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {<-h>}
                            {(DQ (${ Id.VSub_Name cube_readlink_path))}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_readlink_dir='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_readlink_dir='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_readlink_dir='>
                              name: cube_readlink_dir
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    blame_tok: <dirname>
                                    more_env: []
                                    words: [
                                      {<dirname>}
                                      {<-->}
                                      {(DQ (${ Id.VSub_Name cube_readlink_path))}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_readlink_sym='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_readlink_sym='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_readlink_sym='>
                              name: cube_readlink_sym
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    blame_tok: <readlink>
                                    more_env: []
                                    words: [{<readlink>} {(DQ (${ Id.VSub_Name cube_readlink_path))}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_readlink_path='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_readlink_path='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_readlink_path='>
                              name: cube_readlink_path
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.AndOr
                                    children: [
                                      (command.Simple
                                        blame_tok: <cd>
                                        more_env: []
                                        words: [{<cd>} {(DQ (${ Id.VSub_Name cube_readlink_dir))}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <cd>
                                        more_env: []
                                        words: [
                                          {<cd>}
                                          {
                                            (DQ 
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <dirname>
                                                    more_env: []
                                                    words: [
                                                      {<dirname>}
                                                      {<-->}
                                                      {(DQ (${ Id.VSub_Name cube_readlink_sym))}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            )
                                          }
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <pwd>
                                        more_env: []
                                        words: [{<pwd>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                  )
                                right: <Id.Eof_RParen _>
                              ) <'/'> 
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    blame_tok: <basename>
                                    more_env: []
                                    words: [
                                      {<basename>}
                                      {<-->}
                                      {(DQ (${ Id.VSub_Name cube_readlink_sym))}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(${ Id.VSub_Name cube_readlink_path)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_total_memory>
      name: cube_total_memory
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ (${ Id.VSub_Number 1))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <kb>
                  pattern: (pat.Words words:[{<kb>} {<KB>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_total_memory_divisor='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_total_memory_divisor='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_total_memory_divisor='>
                              name: cube_total_memory_divisor
                            )
                          op: assign_op.Equal
                          rhs: {<1024>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <mb>
                  pattern: (pat.Words words:[{<mb>} {<MB>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_total_memory_divisor='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_total_memory_divisor='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_total_memory_divisor='>
                              name: cube_total_memory_divisor
                            )
                          op: assign_op.Equal
                          rhs: {<1048576>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <gb>
                  pattern: (pat.Words words:[{<gb>} {<GB>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_total_memory_divisor='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_total_memory_divisor='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_total_memory_divisor='>
                              name: cube_total_memory_divisor
                            )
                          op: assign_op.Equal
                          rhs: {<1073741824>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_total_memory_divisor='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_total_memory_divisor='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_total_memory_divisor='>
                              name: cube_total_memory_divisor
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (word_part.ArithSub
                    left: <Id.Left_DollarDParen '$(('>
                    anode: 
                      (arith_expr.Binary
                        op_id: Id.Arith_Slash
                        left: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Star
                            left: 
                              {
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (command.Simple
                                          blame_tok: <grep>
                                          more_env: []
                                          words: [{<grep>} {(DQ <'^MemTotal:'>)} {<'/proc/meminfo'>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <awk>
                                          more_env: []
                                          words: [{<awk>} {(SQ <'{print $2}'>)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_Pipe _>]
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              }
                            right: {<Id.Lit_Digits 1024>}
                          )
                        right: {(${ Id.VSub_Name cube_total_memory_divisor)}
                      )
                    right: <Id.Right_DollarDParen _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_ensure_directory>
      name: cube_ensure_directory
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_ensure_directory_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_ensure_directory_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_ensure_directory_result='>
                      name: cube_ensure_directory_result
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              negated: <Id.KW_Bang '!'>
                              children: [
                                (command.Simple
                                  blame_tok: <cube_dir_exists>
                                  more_env: []
                                  words: [{<cube_dir_exists>} {(DQ (${ Id.VSub_Number 1))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <mkdir>
                          more_env: []
                          words: [{<mkdir>} {<-p>} {(DQ (${ Id.VSub_Number 1))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_ensure_directory_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_ensure_directory_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_ensure_directory_result='>
                              name: cube_ensure_directory_result
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <cube_echo>
                      more_env: []
                      words: [{<cube_echo>} {(DQ <'Created directory '> (${ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [5230 5243]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Number 2))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <chmod>
                          more_env: []
                          words: [{<chmod>} {(${ Id.VSub_Number 2)} {(DQ (${ Id.VSub_Number 1))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [5278 5297]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Number 3))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <chown>
                          more_env: []
                          words: [{<chown>} {(${ Id.VSub_Number 3)} {(DQ (${ Id.VSub_Number 1))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [5320 5339]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Number 4))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <chgrp>
                          more_env: []
                          words: [{<chgrp>} {(${ Id.VSub_Number 4)} {(DQ (${ Id.VSub_Number 1))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [5362 5381]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Return return>
              arg_word: {(${ Id.VSub_Name cube_ensure_directory_result)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_ensure_file>
      name: cube_ensure_file
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_ensure_file_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_ensure_file_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_ensure_file_result='>
                      name: cube_ensure_file_result
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              negated: <Id.KW_Bang '!'>
                              children: [
                                (command.Simple
                                  blame_tok: <cube_file_exists>
                                  more_env: []
                                  words: [{<cube_file_exists>} {(DQ (${ Id.VSub_Number 1))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <cube_ensure_directory>
                      more_env: []
                      words: [
                        {<cube_ensure_directory>}
                        {
                          (DQ 
                            (CommandSub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Simple
                                  blame_tok: <dirname>
                                  more_env: []
                                  words: [{<dirname>} {(DQ (${ Id.VSub_Number 1))}]
                                  redirects: []
                                  do_fork: T
                                )
                              right: <Id.Eof_RParen _>
                            )
                          )
                        }
                        {($ Id.VSub_Number 2)}
                        {($ Id.VSub_Number 3)}
                        {($ Id.VSub_Number 4)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <touch>
                          more_env: []
                          words: [{<touch>} {(DQ (${ Id.VSub_Number 1))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_ensure_file_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_ensure_file_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_ensure_file_result='>
                              name: cube_ensure_file_result
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <cube_echo>
                      more_env: []
                      words: [{<cube_echo>} {(DQ <'Created file '> (${ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [5472 5485]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Number 2))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <chmod>
                          more_env: []
                          words: [{<chmod>} {(${ Id.VSub_Number 2)} {(DQ (${ Id.VSub_Number 1))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [5543 5562]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Number 3))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <chown>
                          more_env: []
                          words: [{<chown>} {(${ Id.VSub_Number 3)} {(DQ (${ Id.VSub_Number 1))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [5585 5604]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Number 4))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <chgrp>
                          more_env: []
                          words: [{<chgrp>} {(${ Id.VSub_Number 4)} {(DQ (${ Id.VSub_Number 1))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [5627 5646]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Return return>
              arg_word: {(${ Id.VSub_Name cube_ensure_file_result)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_pushd>
      name: cube_pushd
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <cube_command_exists>
                              more_env: []
                              words: [{<cube_command_exists>} {<pushd>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <pushd>
                          more_env: []
                          words: [{<pushd>} {(DQ (${ Id.VSub_At '@'))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [5720 5728]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <cube_throw>
                  more_env: []
                  words: [{<cube_throw>} {(DQ <'TODO: Not implemented'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_popd>
      name: cube_popd
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <cube_command_exists>
                              more_env: []
                              words: [{<cube_command_exists>} {<popd>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <popd>
                          more_env: []
                          words: [{<popd>} {(DQ (${ Id.VSub_At '@'))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [5781 5789]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <cube_throw>
                  more_env: []
                  words: [{<cube_throw>} {(DQ <'TODO: Not implemented'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_has_role>
      name: cube_has_role
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [cube_has_role_name]
              iterable: (for_iter.Words words:[{(${ Id.VSub_Name cubevar_api_roles)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ (${ Id.VSub_Name cube_has_role_name))}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ (${ Id.VSub_Number 1))}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [5875 5896]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_file_contains>
      name: cube_file_contains
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<2>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_file_contains_grep_output='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_file_contains_grep_output='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_file_contains_grep_output='>
                      name: cube_file_contains_grep_output
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <grep>
                              more_env: []
                              words: [
                                {<grep>}
                                {<-l>}
                                {(DQ (${ Id.VSub_Number 2))}
                                {(DQ (${ Id.VSub_Number 1))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_file_contains_grep_results='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_file_contains_grep_results='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_file_contains_grep_results='>
                      name: cube_file_contains_grep_results
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(${ Id.VSub_Name cube_file_contains_grep_results)}
                                {<-eq>}
                                {<2>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <cube_throw>
                      more_env: []
                      words: [{<cube_throw>} {(DQ (${ Id.VSub_Name cube_file_contains_grep_output))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [5993 6008]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ControlFlow
                  keyword: <Id.ControlFlow_Return return>
                  arg_word: {(${ Id.VSub_Name cube_file_contains_grep_results)}
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_stdin_contains>
      name: cube_stdin_contains
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_stdin_contains_output='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_stdin_contains_output='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_stdin_contains_output='>
                      name: cube_stdin_contains_output
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <grep>
                            more_env: []
                            words: [{<grep>} {<-l>} {(DQ (${ Id.VSub_Number 1))} {<->}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_stdin_contains_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_stdin_contains_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_stdin_contains_result='>
                      name: cube_stdin_contains_result
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(${ Id.VSub_Name cube_stdin_contains_result)}
                                {<-eq>}
                                {<2>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <cube_throw>
                      more_env: []
                      words: [{<cube_throw>} {(DQ (${ Id.VSub_Name cube_stdin_contains_output))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [6094 6109]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ControlFlow
                  keyword: <Id.ControlFlow_Return return>
                  arg_word: {(${ Id.VSub_Name cube_stdin_contains_result)}
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_interface_ipv4_address>
      name: cube_interface_ipv4_address
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Pipeline
                  children: [
                    (command.Simple
                      blame_tok: <ip>
                      more_env: []
                      words: [{<ip>} {<-4>} {<-o>} {<address>} {<show>} {<dev>} {(${ Id.VSub_Number 1)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <head>
                      more_env: []
                      words: [{<head>} {<-1>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <awk>
                      more_env: []
                      words: [{<awk>} {(SQ <'{print $4}'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <sed>
                      more_env: []
                      words: [{<sed>} {(SQ <'s/\\/.*$//g'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                )
                (command.Simple
                  blame_tok: <cube_check_return>
                  more_env: []
                  words: [{<cube_check_return>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_interface_ipv6_address>
      name: cube_interface_ipv6_address
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Pipeline
                  children: [
                    (command.Simple
                      blame_tok: <ip>
                      more_env: []
                      words: [{<ip>} {<-6>} {<-o>} {<address>} {<show>} {<dev>} {(${ Id.VSub_Number 1)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <head>
                      more_env: []
                      words: [{<head>} {<-1>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <awk>
                      more_env: []
                      words: [{<awk>} {(SQ <'{print $4}'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <sed>
                      more_env: []
                      words: [{<sed>} {(SQ <'s/\\/.*$//g'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                )
                (command.Simple
                  blame_tok: <cube_check_return>
                  more_env: []
                  words: [{<cube_check_return>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_prompt>
      name: cube_prompt
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <true>
                          more_env: []
                          words: [{<true>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [{<printf>} {(DQ (${ Id.VSub_Number 1) <' (y/N)? '>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <read>
                          more_env: []
                          words: [{<read>} {<cube_prompt_response>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ (${ Id.VSub_Name cube_prompt_response))})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_LBracket '['>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_LBracket '['> <Yy> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Left_DoubleQuote '"'>
                          pattern: 
                            (pat.Words
                              words: [
                                {(DQ )}
                                {<Id.Lit_LBracket '['> <Nn> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'Please answer yes or no.'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_hostname>
      name: cube_hostname
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Number 1))}
                                {<Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <uname>
                          more_env: []
                          words: [{<uname>} {<-n>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [6467 6485]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.AndOr
                  children: [
                    (command.Pipeline
                      children: [
                        (command.Simple
                          blame_tok: <uname>
                          more_env: []
                          words: [{<uname>} {<-n>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <sed>
                          more_env: []
                          words: [{<sed>} {(SQ <'s/\\..*$//g'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                    (command.Simple
                      blame_tok: <cube_check_return>
                      more_env: []
                      words: [{<cube_check_return>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_user_exists>
      name: cube_user_exists
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <id>
              more_env: []
              words: [{<id>} {<-u>} {(DQ (${ Id.VSub_Number 1))}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
                (Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
              ]
              do_fork: T
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_QMark '?')}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_create_user>
      name: cube_create_user
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <useradd>
                  more_env: []
                  words: [{<useradd>} {(DQ (${ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <cube_check_return>
                  more_env: []
                  words: [{<cube_check_return>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Number 2))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <usermod>
                          more_env: []
                          words: [
                            {<usermod>}
                            {<-s>}
                            {(DQ (${ Id.VSub_Number 2))}
                            {(DQ (${ Id.VSub_Number 1))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [6647 6666]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_group_exists>
      name: cube_group_exists
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <cube_file_contains>
              more_env: []
              words: [{<cube_file_contains>} {<'/etc/group'>} {(DQ <'^'> (${ Id.VSub_Number 1) <':'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_create_group>
      name: cube_create_group
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <groupadd>
                  more_env: []
                  words: [{<groupadd>} {(DQ (${ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <cube_check_return>
                  more_env: []
                  words: [{<cube_check_return>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_group_contains_user>
      name: cube_group_contains_user
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<2>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [cube_group_contains_user]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <groups>
                                more_env: []
                                words: [{<groups>} {(DQ (${ Id.VSub_Number 2))}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <sed>
                                more_env: []
                                words: [{<sed>} {(DQ <'s/'> (${ Id.VSub_Number 2) <' : //g'>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ (${ Id.VSub_Name cube_group_contains_user))}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ (${ Id.VSub_Number 1))}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [6881 6902]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_add_group_user>
      name: cube_add_group_user
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<2>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Number 3))}
                                {<Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <usermod>
                      more_env: []
                      words: [
                        {<usermod>}
                        {<-a>}
                        {<-G>}
                        {(DQ (${ Id.VSub_Number 1))}
                        {(DQ (${ Id.VSub_Number 2))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [6973 6991]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <usermod>
                  more_env: []
                  words: [{<usermod>} {<-g>} {(DQ (${ Id.VSub_Number 1))} {(DQ (${ Id.VSub_Number 2))}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cube_include>
      name: cube_include
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cube_check_numargs>
              more_env: []
              words: [{<cube_check_numargs>} {<1>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cube_include_name='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cube_include_name='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'cube_include_name='>
                      name: cube_include_name
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Number 1>
                          var_name: 1
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VOp1_DPercent '%%'>
                              arg_word: {<Id.Lit_Slash '/'>}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<-d>}
                                {(DQ <'../'> (${ Id.VSub_Name cube_include_name))}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cube_include_name_base='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cube_include_name_base='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cube_include_name_base='>
                              name: cube_include_name_base
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    blame_tok: <basename>
                                    more_env: []
                                    words: [
                                      {<basename>}
                                      {(DQ (${ Id.VSub_Name cube_include_name))}
                                      {<.sh>}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {<-r>}
                                        {
                                          (DQ <'../'> (${ Id.VSub_Name cube_include_name) <'/'> 
                                            (${ Id.VSub_Name cube_include_name_base) <.sh>
                                          )
                                        }
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <cube_echo>
                              more_env: []
                              words: [
                                {<cube_echo>}
                                {(DQ <'Including '> (${ Id.VSub_Name cube_include_name) <' cube...'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <.>
                              more_env: []
                              words: [
                                {<.>}
                                {
                                  (DQ <'../'> (${ Id.VSub_Name cube_include_name) <'/'> 
                                    (${ Id.VSub_Name cube_include_name_base) <.sh>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [7122 7143]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <cube_throw>
                          more_env: []
                          words: [
                            {<cube_throw>}
                            {
                              (DQ <'Cannot read '> (${ Id.VSub_Name cube_include_name) <'/'> 
                                (${ Id.VSub_Name cube_include_name_base) <.sh>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [7089 7105]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<-r>}
                                {(DQ <'../'> (${ Id.VSub_Name cube_include_name))}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <cube_echo>
                      more_env: []
                      words: [
                        {<cube_echo>}
                        {(DQ <'Including '> (${ Id.VSub_Name cube_include_name) <' cube...'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <.>
                      more_env: []
                      words: [{<.>} {(DQ <'../'> (${ Id.VSub_Name cube_include_name))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [7193 7209]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<-r>}
                                {(DQ (${ Id.VSub_Name cube_include_name) <.sh>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <cube_echo>
                      more_env: []
                      words: [
                        {<cube_echo>}
                        {(DQ <'Including '> (${ Id.VSub_Name cube_include_name) <' cube...'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <.>
                      more_env: []
                      words: [{<.>} {(DQ <'../'> (${ Id.VSub_Name cube_include_name) <.sh>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [7233 7249]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <cube_throw>
                  more_env: []
                  words: [
                    {<cube_throw>}
                    {
                      (DQ <'Cube '> (${ Id.VSub_Name cube_include_name) 
                        <' not found (did you upload it with -i '> (${ Id.VSub_Name cube_include_name) <' ?).'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'cubevar_api_post_restart='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'cubevar_api_post_restart='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'cubevar_api_post_restart='>
              name: cubevar_api_post_restart
            )
          op: assign_op.Equal
          rhs: {(DQ )}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'cubevar_api_roles='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'cubevar_api_roles='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cubevar_api_roles='> name:cubevar_api_roles)
          op: assign_op.Equal
          rhs: {(DQ )}
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ (${ Id.VSub_Name POSIXCUBE_APIS_ONLY))}
                        {<Id.Lit_Equals '='>}
                        {(DQ )}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_debug='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_debug='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p666_debug='> name:p666_debug)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_quiet='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_quiet='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p666_quiet='> name:p666_quiet)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_skip_init='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_skip_init='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p666_skip_init='> name:p666_skip_init)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_keep_exec='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_keep_exec='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p666_keep_exec='> name:p666_keep_exec)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_skip_host_errors='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_skip_host_errors='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'p666_skip_host_errors='>
                      name: p666_skip_host_errors
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_hosts='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_hosts='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p666_hosts='> name:p666_hosts)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_cubes='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_cubes='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p666_cubes='> name:p666_cubes)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_include_cubes='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_include_cubes='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'p666_include_cubes='>
                      name: p666_include_cubes
                    )
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_envar_scripts='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_envar_scripts='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'p666_envar_scripts='>
                      name: p666_envar_scripts
                    )
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_envar_scripts_password='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_envar_scripts_password='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'p666_envar_scripts_password='>
                      name: p666_envar_scripts_password
                    )
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_user='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_user='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p666_user='> name:p666_user)
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_Name USER))}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_cubedir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_cubedir='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p666_cubedir='> name:p666_cubedir)
                  op: assign_op.Equal
                  rhs: {(DQ <'~/posixcubes/'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_roles='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_roles='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p666_roles='> name:p666_roles)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_options='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_options='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p666_options='> name:p666_options)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_specfile='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_specfile='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p666_specfile='> name:p666_specfile)
                  op: assign_op.Equal
                  rhs: {(DQ <'./cubespecs.ini'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_parallel='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_parallel='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p666_parallel='> name:p666_parallel)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_async_cubes='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_async_cubes='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'p666_async_cubes='>
                      name: p666_async_cubes
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_default_envars='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_default_envars='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'p666_default_envars='>
                      name: p666_default_envars
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <'envars*sh envars*sh.enc'>)}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (command.Simple
                                        blame_tok: <cube_shell>
                                        more_env: []
                                        words: [{<cube_shell>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                                {<-eq>}
                                {(${ Id.VSub_Name POSIXCUBE_SHELL_BASH)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_parallel='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_parallel='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_parallel='>
                              name: p666_parallel
                            )
                          op: assign_op.Equal
                          rhs: {<64>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7445 7462]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShFunction
              name_tok: <p666_show_version>
              name: p666_show_version
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Simple
                      blame_tok: <p666_printf>
                      more_env: []
                      words: [
                        {<p666_printf>}
                        {
                          (DQ <'posixcube.sh version '> (${ Id.VSub_Name POSIXCUBE_VERSION) 
                            <Id.Lit_BadBackslash '\\'> <n>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name_tok: <p666_printf>
              name: p666_printf
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_printf_str='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_printf_str='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_printf_str='>
                              name: p666_printf_str
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [
                        {<printf>}
                        {
                          (DQ <'['> 
                            (CommandSub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Simple
                                  blame_tok: <date>
                                  more_env: []
                                  words: [{<date>}]
                                  redirects: []
                                  do_fork: T
                                )
                              right: <Id.Eof_RParen _>
                            ) <'] '> (${ Id.VSub_Name p666_printf_str)
                          )
                        }
                        {(DQ (${ Id.VSub_At '@'))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name_tok: <p666_printf_error>
              name: p666_printf_error
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_printf_str='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_printf_str='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_printf_str='>
                              name: p666_printf_str
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [
                        {<printf>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> <'n['> 
                            (CommandSub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Simple
                                  blame_tok: <date>
                                  more_env: []
                                  words: [{<date>}]
                                  redirects: []
                                  do_fork: T
                                )
                              right: <Id.Eof_RParen _>
                            ) <'] '> (${ Id.VSub_Name POSIXCUBE_COLOR_RED) <Error> (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <': '> 
                            (${ Id.VSub_Name p666_printf_str) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n>
                          )
                        }
                        {(DQ (${ Id.VSub_At '@'))}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name_tok: <p666_exit>
              name: p666_exit
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [p666_envar_script]
                      iterable: (for_iter.Words words:[{(${ Id.VSub_Name p666_envar_scripts)}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_envar_script_enc_matches='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_envar_script_enc_matches='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_envar_script_enc_matches='>
                                      name: p666_envar_script_enc_matches
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            blame_tok: <expr>
                                            more_env: []
                                            words: [
                                              {<expr>}
                                              {(${ Id.VSub_Name p666_envar_script)}
                                              {<Id.Lit_Colon ':'>}
                                              {(SQ <'.*\\.dec$'>)}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {(${ Id.VSub_Name p666_envar_script_enc_matches)}
                                                {<-ne>}
                                                {<0>}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <rm>
                                      more_env: []
                                      words: [{<rm>} {(DQ (${ Id.VSub_Name p666_envar_script))}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '2>'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<'/dev/null'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [7626 7641]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(${ Id.VSub_Name p666_keep_exec)}
                            {<-eq>}
                            {<0>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <rm>
                          more_env: []
                          words: [{<rm>} {<-f>} {(DQ (${ Id.VSub_Name p666_script))}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '2>'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {(${ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name_tok: <p666_install>
              name: p666_install
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_func_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_func_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_func_result='>
                              name: p666_func_result
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {<-d>}
                                        {(DQ <'/etc/bash_completion.d/'>)}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_autocomplete_file='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_autocomplete_file='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_autocomplete_file='>
                                      name: p666_autocomplete_file
                                    )
                                  op: assign_op.Equal
                                  rhs: {<'/etc/bash_completion.d/posixcube_completion.sh'>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Pipeline
                              children: [
                                (command.Simple
                                  blame_tok: <cat>
                                  more_env: []
                                  words: [{<cat>}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_DLess '<<'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: 
                                        (redir_param.HereDoc
                                          here_begin: {(SQ <HEREDOC>)}
                                          here_end_tok: <Id.Undefined_Tok ''>
                                          stdin_parts: [
                                            <'_posixcube_complete() {\n'>
                                            <'  COMPREPLY=()\n'>
                                            <'  cur="${COMP_WORDS[COMP_CWORD]}"\n'>
                                            <'  prev="${COMP_WORDS[COMP_CWORD-1]}"\n'>
                                            <'  case "${prev}" in\n'>
                                            <'    \\-h)\n'>
                                            <'      p666_host_list=$({ \n'>
                                            <
'        for c in /etc/ssh_config /etc/ssh/ssh_config ~/.ssh/config\n'
                                            >
                                            <
'        do [ -r $c ] && sed -n -e \'s/^Host[[:space:]]//p\' -e \'s/^[[:space:]]*HostName[[:space:]]//p\' $c\n'
                                            >
                                            <'        done\n'>
                                            <
'        for k in /etc/ssh_known_hosts /etc/ssh/ssh_known_hosts ~/.ssh/known_hosts\n'
                                            >
                                            <
'        do [ -r $k ] && egrep -v \'^[#\\[]\' $k|cut -f 1 -d \' \'|sed -e \'s/[,:].*//g\'\n'
                                            >
                                            <'        done\n'>
                                            <
'        sed -n -e \'s/^[0-9][0-9\\.]*//p\' /etc/hosts; }|tr \' \' \'\\n\'|grep -v \'*\')\n'
                                            >
                                            <
'      COMPREPLY=( $(compgen -W "${p666_host_list}" -- $cur))\n'
                                            >
                                            <'      ;;\n'>
                                            <'    \\-z)\n'>
                                            <
'      p666_complete_specs="$(sed \'s/=.*//g\' cubespecs.ini)"\n'
                                            >
                                            <
'      COMPREPLY=( $(compgen -W "${p666_complete_specs}" -- $cur))\n'
                                            >
                                            <'      ;;\n'>
                                            <'    *)\n'>
                                            <'      ;;\n'>
                                            <'  esac\n'>
                                            <'  return 0\n'>
                                            <'}\n'>
                                            <
'complete -o default -F _posixcube_complete posixcube.sh\n'
                                            >
                                          ]
                                        )
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <tee>
                                  more_env: []
                                  words: [{<tee>} {(${ Id.VSub_Name p666_autocomplete_file)}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_Pipe _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_func_result='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_func_result='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_func_result='>
                                      name: p666_func_result
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '?')}
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {(${ Id.VSub_Name p666_func_result)}
                                                {<-eq>}
                                                {<0>}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <chmod>
                                      more_env: []
                                      words: [
                                        {<chmod>}
                                        {<Id.Lit_Other '+'> <x>}
                                        {(${ Id.VSub_Name p666_autocomplete_file)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_func_result='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_func_result='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_func_result='>
                                              name: p666_func_result
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '?')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {(${ Id.VSub_Name p666_func_result)}
                                                        {<-eq>}
                                                        {<0>}
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <.>
                                              more_env: []
                                              words: [{<.>} {(${ Id.VSub_Name p666_autocomplete_file)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_func_result='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_func_result='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_func_result='>
                                                      name: p666_func_result
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_QMark '?')}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <Id.Lit_LBracket '['>
                                                              more_env: []
                                                              words: [
                                                                {<Id.Lit_LBracket '['>}
                                                                {(${ Id.VSub_Name p666_func_result)}
                                                                {<-eq>}
                                                                {<0>}
                                                                {<Id.Lit_RBracket ']'>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <p666_printf>
                                                      more_env: []
                                                      words: [
                                                        {<p666_printf>}
                                                        {
                                                          (DQ 
                                                            <
'Installed Bash programmable completion script into '
                                                            > (${ Id.VSub_Name p666_autocomplete_file) <Id.Lit_BadBackslash '\\'> <n>
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [7868 7883]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Simple
                                                  blame_tok: <p666_printf>
                                                  more_env: []
                                                  words: [
                                                    {<p666_printf>}
                                                    {
                                                      (DQ <'Could not execute '> 
                                                        (${ Id.VSub_Name p666_autocomplete_file) <Id.Lit_BadBackslash '\\'> <n>
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [7839 7854]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <p666_printf>
                                          more_env: []
                                          words: [
                                            {<p666_printf>}
                                            {
                                              (DQ <'Could not chmod +x '> 
                                                (${ Id.VSub_Name p666_autocomplete_file) <Id.Lit_BadBackslash '\\'> <n>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [7807 7822]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <p666_printf>
                                  more_env: []
                                  words: [
                                    {<p666_printf>}
                                    {
                                      (DQ <'Could not create '> 
                                        (${ Id.VSub_Name p666_autocomplete_file) <Id.Lit_BadBackslash '\\'> <n>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <p666_printf>
                                  more_env: []
                                  words: [
                                    {<p666_printf>}
                                    {
                                      (DQ <'You may need to try with sudo. For example:'> 
                                        <Id.Lit_BadBackslash '\\'> <n>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <p666_printf>
                                  more_env: []
                                  words: [
                                    {<p666_printf>}
                                    {
                                      (DQ <'  sudo '> 
                                        (CommandSub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Simple
                                              blame_tok: <cube_current_script_abs_path>
                                              more_env: []
                                              words: [{<cube_current_script_abs_path>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          right: <Id.Eof_RParen _>
                                        ) <' -b && . '> (${ Id.VSub_Name p666_autocomplete_file) <Id.Lit_BadBackslash '\\'> <n>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <p666_printf>
                                  more_env: []
                                  words: [
                                    {<p666_printf>}
                                    {
                                      (DQ 
                                        <
'You only need to source the command the first time. Subsequent shells will automatically source it.'
                                        > <Id.Lit_BadBackslash '\\'> <n>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [7723 7736]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <p666_printf>
                          more_env: []
                          words: [
                            {<p666_printf>}
                            {
                              (DQ 
                                <
'No directory /etc/bash_completion.d/ found, skipping Bash programmable completion installation.'
                                > <Id.Lit_BadBackslash '\\'> <n>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {(${ Id.VSub_Name p666_func_result)}
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_all_hosts='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_all_hosts='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p666_all_hosts='> name:p666_all_hosts)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShFunction
              name_tok: <p666_process_hostname>
              name: p666_process_hostname
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_hostname_wildcard='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_hostname_wildcard='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_hostname_wildcard='>
                              name: p666_hostname_wildcard
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    blame_tok: <expr>
                                    more_env: []
                                    words: [
                                      {<expr>}
                                      {(DQ (${ Id.VSub_Number 1))}
                                      {<Id.Lit_Colon ':'>}
                                      {(SQ <'.*\\*.*'>)}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(${ Id.VSub_Name p666_hostname_wildcard)}
                                        {<-ne>}
                                        {<0>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {(DQ (${ Id.VSub_Name p666_all_hosts))}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ )}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_all_hosts='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_all_hosts='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_all_hosts='>
                                              name: p666_all_hosts
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (BraceGroup
                                                        left: <Id.Lit_LBrace '{'>
                                                        children: [
                                                          (command.ForEach
                                                            keyword: <Id.KW_For for>
                                                            iter_names: [c]
                                                            iterable: 
                                                              (for_iter.Words
                                                                words: [
                                                                  {<'/etc/ssh_config'>}
                                                                  {<'/etc/ssh/ssh_config'>}
                                                                  {
                                                                    (word_part.TildeSub
                                                                      token: <Id.Lit_TildeLike '~'>
                                                                    ) <'/.ssh/config'>
                                                                  }
                                                                ]
                                                              )
                                                            body: 
                                                              (command.DoGroup
                                                                left: <Id.KW_Do do>
                                                                children: [
                                                                  (command.AndOr
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: 
                                                                          <Id.Lit_LBracket '['>
                                                                        more_env: []
                                                                        words: [
                                                                          {<Id.Lit_LBracket '['>}
                                                                          {<-r>}
                                                                          {($ Id.VSub_DollarName c)}
                                                                          {<Id.Lit_RBracket ']'>}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <sed>
                                                                        more_env: []
                                                                        words: [
                                                                          {<sed>}
                                                                          {<-n>}
                                                                          {<-e>}
                                                                          {
                                                                            (SQ 
                                                                              <
's/^Host[[:space:]]//p'
                                                                              >
                                                                            )
                                                                          }
                                                                          {<-e>}
                                                                          {
                                                                            (SQ 
                                                                              <
's/^[[:space:]]*HostName[[:space:]]//p'
                                                                              >
                                                                            )
                                                                          }
                                                                          {($ Id.VSub_DollarName c)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_DAmp _>]
                                                                  )
                                                                ]
                                                                right: <Id.KW_Done done>
                                                              )
                                                            redirects: []
                                                          )
                                                          (command.ForEach
                                                            keyword: <Id.KW_For for>
                                                            iter_names: [k]
                                                            iterable: 
                                                              (for_iter.Words
                                                                words: [
                                                                  {<'/etc/ssh_known_hosts'>}
                                                                  {<'/etc/ssh/ssh_known_hosts'>}
                                                                  {
                                                                    (word_part.TildeSub
                                                                      token: <Id.Lit_TildeLike '~'>
                                                                    ) <'/.ssh/known_hosts'>
                                                                  }
                                                                ]
                                                              )
                                                            body: 
                                                              (command.DoGroup
                                                                left: <Id.KW_Do do>
                                                                children: [
                                                                  (command.AndOr
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: 
                                                                          <Id.Lit_LBracket '['>
                                                                        more_env: []
                                                                        words: [
                                                                          {<Id.Lit_LBracket '['>}
                                                                          {<-r>}
                                                                          {($ Id.VSub_DollarName k)}
                                                                          {<Id.Lit_RBracket ']'>}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Pipeline
                                                                        children: [
                                                                          (command.Simple
                                                                            blame_tok: <egrep>
                                                                            more_env: []
                                                                            words: [
                                                                              {<egrep>}
                                                                              {<-v>}
                                                                              {(SQ <'^[#\\[]'>)}
                                                                              {
                                                                                ($ 
Id.VSub_DollarName k
                                                                                )
                                                                              }
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                          (command.Simple
                                                                            blame_tok: <cut>
                                                                            more_env: []
                                                                            words: [
                                                                              {<cut>}
                                                                              {<-f>}
                                                                              {<1>}
                                                                              {<-d>}
                                                                              {(SQ <' '>)}
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                          (command.Simple
                                                                            blame_tok: <sed>
                                                                            more_env: []
                                                                            words: [
                                                                              {<sed>}
                                                                              {<-e>}
                                                                              {(SQ <'s/[,:].*//g'>)}
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                        ]
                                                                        ops: [
                                                                          <Id.Op_Pipe _>
                                                                          <Id.Op_Pipe _>
                                                                        ]
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_DAmp _>]
                                                                  )
                                                                ]
                                                                right: <Id.KW_Done done>
                                                              )
                                                            redirects: []
                                                          )
                                                          (command.Sentence
                                                            child: 
                                                              (command.Simple
                                                                blame_tok: <sed>
                                                                more_env: []
                                                                words: [
                                                                  {<sed>}
                                                                  {<-n>}
                                                                  {<-e>}
                                                                  {(SQ <'s/^[0-9][0-9\\.]*//p'>)}
                                                                  {<'/etc/hosts'>}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            terminator: <Id.Op_Semi _>
                                                          )
                                                        ]
                                                        redirects: []
                                                        right: <Id.Lit_RBrace '}'>
                                                      )
                                                      (command.Simple
                                                        blame_tok: <tr>
                                                        more_env: []
                                                        words: [{<tr>} {(SQ <'\\n'>)} {(SQ <' '>)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <grep>
                                                        more_env: []
                                                        words: [{<grep>} {<-v>} {(SQ <'*'>)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [8067 8085]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_process_hostname_search='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_process_hostname_search='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_process_hostname_search='>
                                      name: p666_process_hostname_search
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <printf>
                                                more_env: []
                                                words: [{<printf>} {(DQ (${ Id.VSub_Number 1))}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s/\\*/\\.\\*/g'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_process_hostname_list='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_process_hostname_list='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_process_hostname_list='>
                                      name: p666_process_hostname_list
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ )}
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [p666_all_host]
                              iterable: (for_iter.Words words:[{(${ Id.VSub_Name p666_all_hosts)}])
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_all_host_match='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_all_host_match='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_all_host_match='>
                                              name: p666_all_host_match
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <expr>
                                                    more_env: []
                                                    words: [
                                                      {<expr>}
                                                      {(${ Id.VSub_Name p666_all_host)}
                                                      {<Id.Lit_Colon ':'>}
                                                      {
                                                        (${ Id.VSub_Name p666_process_hostname_search)
                                                      }
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {(${ Id.VSub_Name p666_all_host_match)}
                                                        {<-ne>}
                                                        {<0>}
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_process_hostname_list='>
                                              pairs: [
                                                (AssignPair
                                                  left: 
                                                    <Id.Lit_VarLike 'p666_process_hostname_list='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: 
                                                        <Id.Lit_VarLike 
'p666_process_hostname_list='
                                                        >
                                                      name: p666_process_hostname_list
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <cube_append_str>
                                                            more_env: []
                                                            words: [
                                                              {<cube_append_str>}
                                                              {
                                                                (DQ 
                                                                  (${ Id.VSub_Name 
p666_process_hostname_list
                                                                  )
                                                                )
                                                              }
                                                              {(DQ (${ Id.VSub_Name p666_all_host))}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Eof_RParen _>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [8299 8314]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ (${ Id.VSub_Name p666_process_hostname_list))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [8043 8058]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ (${ Id.VSub_Number 1))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name_tok: <p666_process_options>
              name: p666_process_options
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'OPTIND='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'OPTIND='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTIND='> name:OPTIND)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <getopts>
                                  more_env: []
                                  words: [
                                    {<getopts>}
                                    {(DQ <'?vdqbskyah:u:c:e:p:w:r:o:z:i:'>)}
                                    {<p666_opt>}
                                    {(DQ (${ Id.VSub_At '@'))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName p666_opt))})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_EscapedChar '\\?'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\?'>
                                            ch: '?'
                                          )
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <p666_show_usage>
                                      more_env: []
                                      words: [{<p666_show_usage>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <v>
                                  pattern: (pat.Words words:[{<v>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <p666_show_version>
                                      more_env: []
                                      words: [{<p666_show_version>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <d>
                                  pattern: (pat.Words words:[{<d>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_debug='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_debug='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_debug='>
                                              name: p666_debug
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <q>
                                  pattern: (pat.Words words:[{<q>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_quiet='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_quiet='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_quiet='>
                                              name: p666_quiet
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <s>
                                  pattern: (pat.Words words:[{<s>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_skip_init='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_skip_init='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_skip_init='>
                                              name: p666_skip_init
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <k>
                                  pattern: (pat.Words words:[{<k>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_keep_exec='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_keep_exec='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_keep_exec='>
                                              name: p666_keep_exec
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <y>
                                  pattern: (pat.Words words:[{<y>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_skip_host_errors='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_skip_host_errors='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_skip_host_errors='>
                                              name: p666_skip_host_errors
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <a>
                                  pattern: (pat.Words words:[{<a>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_async_cubes='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_async_cubes='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_async_cubes='>
                                              name: p666_async_cubes
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <b>
                                  pattern: (pat.Words words:[{<b>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <p666_install>
                                      more_env: []
                                      words: [{<p666_install>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <h>
                                  pattern: (pat.Words words:[{<h>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_processed_hostname='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_processed_hostname='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_processed_hostname='>
                                              name: p666_processed_hostname
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <p666_process_hostname>
                                                    more_env: []
                                                    words: [
                                                      {<p666_process_hostname>}
                                                      {(DQ (${ Id.VSub_Name OPTARG))}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {
                                                          (DQ 
                                                            (${ Id.VSub_Name p666_processed_hostname)
                                                          )
                                                        }
                                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                        {(DQ )}
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_hosts='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_hosts='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_hosts='>
                                                      name: p666_hosts
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <cube_append_str>
                                                            more_env: []
                                                            words: [
                                                              {<cube_append_str>}
                                                              {(DQ (${ Id.VSub_Name p666_hosts))}
                                                              {
                                                                (DQ 
                                                                  (${ Id.VSub_Name 
p666_processed_hostname
                                                                  )
                                                                )
                                                              }
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Eof_RParen _>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [8536 8555]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <p666_printf_error>
                                          more_env: []
                                          words: [
                                            {<p666_printf_error>}
                                            {
                                              (DQ <'No known hosts match '> (${ Id.VSub_Name OPTARG) 
                                                <' from '> (${ Id.VSub_Name p666_all_hosts)
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                          arg_word: {<1>}
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <c>
                                  pattern: (pat.Words words:[{<c>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_cubes='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_cubes='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_cubes='>
                                              name: p666_cubes
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <cube_append_str>
                                                    more_env: []
                                                    words: [
                                                      {<cube_append_str>}
                                                      {(DQ (${ Id.VSub_Name p666_cubes))}
                                                      {(DQ (${ Id.VSub_Name OPTARG))}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <i>
                                  pattern: (pat.Words words:[{<i>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_include_cubes='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_include_cubes='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_include_cubes='>
                                              name: p666_include_cubes
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <cube_append_str>
                                                    more_env: []
                                                    words: [
                                                      {<cube_append_str>}
                                                      {(DQ (${ Id.VSub_Name p666_include_cubes))}
                                                      {(DQ (${ Id.VSub_Name OPTARG))}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <e>
                                  pattern: (pat.Words words:[{<e>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {<Id.KW_Bang '!'>}
                                                        {<-r>}
                                                        {(DQ (${ Id.VSub_Name OPTARG))}
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <p666_printf_error>
                                              more_env: []
                                              words: [
                                                {<p666_printf_error>}
                                                {
                                                  (DQ <'Could not find '> (${ Id.VSub_Name OPTARG) 
                                                    <' ENVAR script.'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Exit exit>
                                              arg_word: {<1>}
                                            )
                                          ]
                                          spids: [8658 8675]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_envar_scripts='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_envar_scripts='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_envar_scripts='>
                                              name: p666_envar_scripts
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <cube_append_str>
                                                    more_env: []
                                                    words: [
                                                      {<cube_append_str>}
                                                      {(DQ (${ Id.VSub_Name p666_envar_scripts))}
                                                      {(DQ (${ Id.VSub_Name OPTARG))}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <u>
                                  pattern: (pat.Words words:[{<u>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_user='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_user='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_user='>
                                              name: p666_user
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ (${ Id.VSub_Name OPTARG))}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <p>
                                  pattern: (pat.Words words:[{<p>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_envar_scripts_password='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_envar_scripts_password='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_envar_scripts_password='>
                                              name: p666_envar_scripts_password
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ (${ Id.VSub_Name OPTARG))}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <w>
                                  pattern: (pat.Words words:[{<w>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'p666_envar_scripts_password='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'p666_envar_scripts_password='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: 
                                                    <Id.Lit_VarLike 'p666_envar_scripts_password='>
                                                  name: p666_envar_scripts_password
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (CommandSub
                                                      left_token: <Id.Left_DollarParen '$('>
                                                      child: 
                                                        (command.Simple
                                                          blame_tok: <cat>
                                                          more_env: []
                                                          words: [{<cat>} {(${ Id.VSub_Name OPTARG)}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      right: <Id.Eof_RParen _>
                                                    )
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <cube_check_return>
                                          more_env: []
                                          words: [{<cube_check_return>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <r>
                                  pattern: (pat.Words words:[{<r>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_roles='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_roles='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_roles='>
                                              name: p666_roles
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <cube_append_str>
                                                    more_env: []
                                                    words: [
                                                      {<cube_append_str>}
                                                      {(DQ (${ Id.VSub_Name p666_roles))}
                                                      {(DQ (${ Id.VSub_Name OPTARG))}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <o>
                                  pattern: (pat.Words words:[{<o>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_option_name='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_option_name='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_option_name='>
                                              name: p666_option_name
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [{<echo>} {(DQ (${ Id.VSub_Name OPTARG))}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <sed>
                                                        more_env: []
                                                        words: [{<sed>} {(SQ <'s/=.*//'>)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_option_value='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_option_value='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_option_value='>
                                              name: p666_option_value
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [{<echo>} {(DQ (${ Id.VSub_Name OPTARG))}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <sed>
                                                        more_env: []
                                                        words: [
                                                          {<sed>}
                                                          {
                                                            (DQ <'s/^'> 
                                                              (${ Id.VSub_Name p666_option_name) <'=//'>
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_option_value='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_option_value='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_option_value='>
                                              name: p666_option_value
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <p666_process_hostname>
                                                    more_env: []
                                                    words: [
                                                      {<p666_process_hostname>}
                                                      {(DQ (${ Id.VSub_Name p666_option_value))}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_options='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_options='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_options='>
                                              name: p666_options
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <cube_append_str>
                                                    more_env: []
                                                    words: [
                                                      {<cube_append_str>}
                                                      {(DQ (${ Id.VSub_Name p666_options))}
                                                      {
                                                        (DQ (${ Id.VSub_Name p666_option_name) <'='> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                            ch: '"'
                                                          ) (${ Id.VSub_Name p666_option_value) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                        )
                                                      }
                                                      {(DQ (${ Id.VSub_Name POSIXCUBE_NEWLINE))}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <z>
                                  pattern: (pat.Words words:[{<z>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {<-r>}
                                                        {(DQ (${ Id.VSub_Name p666_specfile))}
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_foundspec='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_foundspec='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_foundspec='>
                                                      name: p666_foundspec
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<0>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_foundspec_names='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_foundspec_names='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_foundspec_names='>
                                                      name: p666_foundspec_names
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ )}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.WhileUntil
                                              keyword: <Id.KW_While while>
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.Simple
                                                          blame_tok: <read>
                                                          more_env: []
                                                          words: [{<read>} {<p666_specfile_line>}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.ShAssignment
                                                      left: 
                                                        <Id.Lit_VarLike 'p666_specfile_line_name='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: 
                                                            <Id.Lit_VarLike 
'p666_specfile_line_name='
                                                            >
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'p666_specfile_line_name='
                                                                >
                                                              name: p666_specfile_line_name
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: 
                                                                  <Id.Left_DollarParen '$('>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <echo>
                                                                        more_env: []
                                                                        words: [
                                                                          {<echo>}
                                                                          {
                                                                            (DQ 
                                                                              (${ Id.VSub_Name 
p666_specfile_line
                                                                              )
                                                                            )
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <sed>
                                                                        more_env: []
                                                                        words: [
                                                                          {<sed>}
                                                                          {(SQ <'s/=.*//'>)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Eof_RParen _>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'p666_foundspec_names='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: 
                                                            <Id.Lit_VarLike 'p666_foundspec_names='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'p666_foundspec_names='
                                                                >
                                                              name: p666_foundspec_names
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: 
                                                                  <Id.Left_DollarParen '$('>
                                                                child: 
                                                                  (command.Simple
                                                                    blame_tok: <cube_append_str>
                                                                    more_env: []
                                                                    words: [
                                                                      {<cube_append_str>}
                                                                      {
                                                                        (DQ 
                                                                          (${ Id.VSub_Name 
p666_foundspec_names
                                                                          )
                                                                        )
                                                                      }
                                                                      {
                                                                        (DQ 
                                                                          (${ Id.VSub_Name 
p666_specfile_line_name
                                                                          )
                                                                        )
                                                                      }
                                                                    ]
                                                                    redirects: []
                                                                    do_fork: T
                                                                  )
                                                                right: <Id.Eof_RParen _>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.Lit_LBracket '['>
                                                                      more_env: []
                                                                      words: [
                                                                        {<Id.Lit_LBracket '['>}
                                                                        {
                                                                          (DQ 
                                                                            (${ Id.VSub_Name 
p666_specfile_line_name
                                                                            )
                                                                          )
                                                                        }
                                                                        {<Id.Lit_Equals '='>}
                                                                        {
                                                                          (DQ 
                                                                            (${ Id.VSub_Name OPTARG)
                                                                          )
                                                                        }
                                                                        {<Id.Lit_RBracket ']'>}
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: 
                                                                <Id.Lit_VarLike 'p666_foundspec='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'p666_foundspec='
                                                                    >
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'p666_foundspec='
                                                                        >
                                                                      name: p666_foundspec
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<1>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: 
                                                                <Id.Lit_VarLike 
'p666_specfile_line_value='
                                                                >
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'p666_specfile_line_value='
                                                                    >
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'p666_specfile_line_value='
                                                                        >
                                                                      name: p666_specfile_line_value
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_DollarParen '$('>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (command.Simple
                                                                                blame_tok: <echo>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<echo>}
                                                                                  {
                                                                                    (DQ 
                                                                                      (${ 
Id.VSub_Name p666_specfile_line
                                                                                      )
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: <sed>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<sed>}
                                                                                  {
                                                                                    (DQ <'s/^'> 
                                                                                      (${ 
Id.VSub_Name p666_specfile_line_name
                                                                                      ) <'=//'>
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            ]
                                                                            ops: [<Id.Op_Pipe _>]
                                                                          )
                                                                        right: <Id.Eof_RParen _>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <p666_process_options>
                                                              more_env: []
                                                              words: [
                                                                {<p666_process_options>}
                                                                {
                                                                  (${ Id.VSub_Name 
p666_specfile_line_value
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ControlFlow
                                                              keyword: <Id.ControlFlow_Break break>
                                                            )
                                                          ]
                                                          spids: [8976 8997]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Less '<'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: {(DQ (${ Id.VSub_Name p666_specfile))}
                                                )
                                              ]
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <Id.Lit_LBracket '['>
                                                              more_env: []
                                                              words: [
                                                                {<Id.Lit_LBracket '['>}
                                                                {(${ Id.VSub_Name p666_foundspec)}
                                                                {<-eq>}
                                                                {<0>}
                                                                {<Id.Lit_RBracket ']'>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <p666_printf_error>
                                                      more_env: []
                                                      words: [
                                                        {<p666_printf_error>}
                                                        {
                                                          (DQ <'Could not find '> 
                                                            (${ Id.VSub_Name OPTARG) <' in '> (${ Id.VSub_Name p666_specfile) <' file with specs '> (${ Id.VSub_Name p666_foundspec_names)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Exit exit>
                                                      arg_word: {<1>}
                                                    )
                                                  ]
                                                  spids: [9054 9069]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [8897 8912]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <p666_printf_error>
                                          more_env: []
                                          words: [
                                            {<p666_printf_error>}
                                            {
                                              (DQ <'Could not find '> (${ Id.VSub_Name p666_specfile) 
                                                <' file'>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                          arg_word: {<1>}
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.Simple
              blame_tok: <p666_process_options>
              more_env: []
              words: [{<p666_process_options>} {(DQ (${ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {(DQ (${ Id.VSub_Name p666_envar_scripts_password))}
                                    {<Id.Lit_Equals '='>}
                                    {(DQ )}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {<-r>}
                                    {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) 
                                      <'/.posixcube.pwd'>
                                    }
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'p666_envar_scripts_password='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'p666_envar_scripts_password='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'p666_envar_scripts_password='>
                                  name: p666_envar_scripts_password
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Simple
                                          blame_tok: <cat>
                                          more_env: []
                                          words: [
                                            {<cat>}
                                            {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) 
                                              <'/.posixcube.pwd'>
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <cube_check_return>
                          more_env: []
                          words: [{<cube_check_return>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [9148 9177]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [
                {<shift>}
                {
                  (word_part.ArithSub
                    left: <Id.Left_DollarDParen '$(('>
                    anode: 
                      (arith_expr.Binary
                        op_id: Id.Arith_Minus
                        left: {(${ Id.VSub_Name OPTIND)}
                        right: {<Id.Lit_Digits 1>}
                      )
                    right: <Id.Right_DollarDParen _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_Number 1))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <-->)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <shift>
                  more_env: []
                  words: [{<shift>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Name p666_envar_scripts))}
                                {<Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_envar_scripts='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_envar_scripts='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_envar_scripts='>
                              name: p666_envar_scripts
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (command.Simple
                                          blame_tok: <ls>
                                          more_env: []
                                          words: [{<ls>} {<-1>} {(${ Id.VSub_Name p666_default_envars)}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <paste>
                                          more_env: []
                                          words: [{<paste>} {<-sd>} {(SQ <' '>)} {<->}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_Pipe _>]
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9233 9251]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Name p666_envar_scripts))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(${ Id.VSub_Name p666_debug)}
                            {<-eq>}
                            {<1>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <p666_printf>
                          more_env: []
                          words: [
                            {<p666_printf>}
                            {
                              (DQ <'Using ENVAR files: '> (${ Id.VSub_Name p666_envar_scripts) 
                                <Id.Lit_BadBackslash '\\'> <n>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  spids: [9287 9306]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p666_commands='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p666_commands='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p666_commands='> name:p666_commands)
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_At '@'))}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Name p666_hosts))}
                                {<Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ (${ Id.VSub_Name p666_commands))}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ )}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{(DQ (${ Id.VSub_Number 1))})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <edit>
                                  pattern: (pat.Words words:[{<edit>} {<show>} {<source>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {(DQ (${ Id.VSub_Name p666_envar_scripts))}
                                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                        {(DQ )}
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [p666_envar_script]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{(${ Id.VSub_Name p666_envar_scripts)}]
                                                )
                                              semi_tok: <Id.Op_Semi _>
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.ShAssignment
                                                      left: 
                                                        <Id.Lit_VarLike 'p666_envar_scripts_enc='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: 
                                                            <Id.Lit_VarLike 
'p666_envar_scripts_enc='
                                                            >
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'p666_envar_scripts_enc='
                                                                >
                                                              name: p666_envar_scripts_enc
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: 
                                                                  <Id.Left_DollarParen '$('>
                                                                child: 
                                                                  (command.Simple
                                                                    blame_tok: <expr>
                                                                    more_env: []
                                                                    words: [
                                                                      {<expr>}
                                                                      {
                                                                        (${ Id.VSub_Name 
p666_envar_script
                                                                        )
                                                                      }
                                                                      {<Id.Lit_Colon ':'>}
                                                                      {(SQ <'.*enc$'>)}
                                                                    ]
                                                                    redirects: []
                                                                    do_fork: T
                                                                  )
                                                                right: <Id.Eof_RParen _>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.Lit_LBracket '['>
                                                                      more_env: []
                                                                      words: [
                                                                        {<Id.Lit_LBracket '['>}
                                                                        {
                                                                          (${ Id.VSub_Name 
p666_envar_scripts_enc
                                                                          )
                                                                        }
                                                                        {<-ne>}
                                                                        {<0>}
                                                                        {<Id.Lit_RBracket ']'>}
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.If
                                                              if_kw: <Id.KW_If if>
                                                              arms: [
                                                                (IfArm
                                                                  keyword: <Id.KW_If if>
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <
cube_command_exists
                                                                                >
                                                                              more_env: []
                                                                              words: [
                                                                                {
                                                                                  <
cube_command_exists
                                                                                  >
                                                                                }
                                                                                {<gpg>}
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'p666_envar_script_new='
                                                                        >
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'p666_envar_script_new='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'p666_envar_script_new='
                                                                                >
                                                                              name: 
p666_envar_script_new
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (CommandSub
                                                                                left_token: 
                                                                                  <
Id.Left_DollarParen '$('
                                                                                  >
                                                                                child: 
                                                                                  (command.Pipeline
                                                                                    children: [
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <echo>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<echo>}
                                                                                          {
                                                                                            (DQ 
                                                                                              (${ 
Id.VSub_Name p666_envar_script
                                                                                              )
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <sed>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<sed>}
                                                                                          {
                                                                                            (SQ 
                                                                                              <
's/enc$/dec/g'
                                                                                              >
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                    ]
                                                                                    ops: [
                                                                                      <Id.Op_Pipe _>
                                                                                    ]
                                                                                  )
                                                                                right: 
                                                                                  <Id.Eof_RParen _>
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.If
                                                                      if_kw: <Id.KW_If if>
                                                                      arms: [
                                                                        (IfArm
                                                                          keyword: <Id.KW_If if>
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Sentence
                                                                                  child: 
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <
Id.Lit_LBracket '['
                                                                                        >
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_LBracket '['
                                                                                          >
                                                                                        }
                                                                                        {
                                                                                          (DQ 
                                                                                            (${ 
Id.VSub_Name p666_envar_scripts_password
                                                                                            )
                                                                                          )
                                                                                        }
                                                                                        {
                                                                                          <
Id.Lit_Equals '='
                                                                                          >
                                                                                        }
                                                                                        {(DQ )}
                                                                                        {
                                                                                          <
Id.Lit_RBracket ']'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          then_kw: <Id.KW_Then then>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <p666_printf>
                                                                              more_env: []
                                                                              words: [
                                                                                {<p666_printf>}
                                                                                {
                                                                                  (DQ 
                                                                                    <
'Enter the password for '
                                                                                    > (${ Id.VSub_Name p666_envar_script) <':'> <Id.Lit_BadBackslash '\\'> <n>
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.AndOr
                                                                              children: [
                                                                                (command.Simple
                                                                                  blame_tok: <gpg>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<gpg>}
                                                                                    {<--output>}
                                                                                    {
                                                                                      (DQ 
                                                                                        (${ 
Id.VSub_Name p666_envar_script_new
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                    {<--yes>}
                                                                                    {<--decrypt>}
                                                                                    {
                                                                                      (DQ 
                                                                                        (${ 
Id.VSub_Name p666_envar_script
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <
cube_check_return
                                                                                    >
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {
                                                                                      <
cube_check_return
                                                                                      >
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                              ops: [<Id.Op_DPipe _>]
                                                                            )
                                                                          ]
                                                                          spids: [9518 9536]
                                                                        )
                                                                      ]
                                                                      else_kw: <Id.KW_Else else>
                                                                      else_action: [
                                                                        (command.AndOr
                                                                          children: [
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <Id.Lit_LBracket '['>
                                                                              more_env: []
                                                                              words: [
                                                                                {
                                                                                  <Id.Lit_LBracket 
'['
                                                                                  >
                                                                                }
                                                                                {
                                                                                  (${ Id.VSub_Name 
p666_debug
                                                                                  )
                                                                                }
                                                                                {<-eq>}
                                                                                {<1>}
                                                                                {
                                                                                  <Id.Lit_RBracket 
']'
                                                                                  >
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <p666_printf>
                                                                              more_env: []
                                                                              words: [
                                                                                {<p666_printf>}
                                                                                {
                                                                                  (DQ <'Decrypting '> 
                                                                                    (${ Id.VSub_Name 
p666_envar_script
                                                                                    ) <' ...'> <Id.Lit_BadBackslash '\\'> <n>
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          ops: [<Id.Op_DAmp _>]
                                                                        )
                                                                        (command.AndOr
                                                                          children: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'p666_gpg_output='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'p666_gpg_output='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'p666_gpg_output='
                                                                                        >
                                                                                      name: 
p666_gpg_output
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        (CommandSub
                                                                                          left_token: 
                                                                                            <
Id.Left_DollarParen '$('
                                                                                            >
                                                                                          child: 
                                                                                            (command.Pipeline
                                                                                              children: [
                                                                                                (command.Simple
                                                                                                  blame_tok: 
                                                                                                    <
echo
                                                                                                    >
                                                                                                  more_env: []
                                                                                                  words: [
                                                                                                    {
                                                                                                      <
echo
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        (${ 
Id.VSub_Name p666_envar_scripts_password
                                                                                                        )
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: []
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                                (command.Simple
                                                                                                  blame_tok: 
                                                                                                    <
gpg
                                                                                                    >
                                                                                                  more_env: []
                                                                                                  words: [
                                                                                                    {
                                                                                                      <
gpg
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      <
--passphrase-fd
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      <
0
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      <
--batch
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      <
--yes
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      <
--output
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        (${ 
Id.VSub_Name p666_envar_script_new
                                                                                                        )
                                                                                                      )
                                                                                                    }
                                                                                                    {
                                                                                                      <
--decrypt
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        (${ 
Id.VSub_Name p666_envar_script
                                                                                                        )
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: [
                                                                                                    (Redir
                                                                                                      op: 
                                                                                                        <
Id.Redir_GreatAnd '2>&'
                                                                                                        >
                                                                                                      loc: 
                                                                                                        (redir_loc.Fd
                                                                                                          fd: 
2
                                                                                                        )
                                                                                                      arg: 
                                                                                                        {
                                                                                                          <
1
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                              ]
                                                                                              ops: [
                                                                                                <
Id.Op_Pipe _
                                                                                                >
                                                                                              ]
                                                                                            )
                                                                                          right: 
                                                                                            <
Id.Eof_RParen _
                                                                                            >
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <cube_check_return>
                                                                              more_env: []
                                                                              words: [
                                                                                {<cube_check_return>}
                                                                                {
                                                                                  (DQ 
                                                                                    (${ Id.VSub_Name 
p666_gpg_output
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          ops: [<Id.Op_DPipe _>]
                                                                        )
                                                                      ]
                                                                      fi_kw: <Id.KW_Fi fi>
                                                                      redirects: []
                                                                    )
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              (DQ 
                                                                                (${ Id.VSub_Number 1)
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <show>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<show>}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <p666_printf>
                                                                              more_env: []
                                                                              words: [
                                                                                {<p666_printf>}
                                                                                {
                                                                                  (DQ 
                                                                                    <'Contents of '> (${ Id.VSub_Name p666_envar_script) <':'> <Id.Lit_BadBackslash '\\'> <n>
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <cat>
                                                                              more_env: []
                                                                              words: [
                                                                                {<cat>}
                                                                                {
                                                                                  (DQ 
                                                                                    (${ Id.VSub_Name 
p666_envar_script_new
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <source>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<source>}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <chmod>
                                                                              more_env: []
                                                                              words: [
                                                                                {<chmod>}
                                                                                {<u> 
                                                                                  <Id.Lit_Other '+'> <x>
                                                                                }
                                                                                {
                                                                                  (DQ 
                                                                                    (${ Id.VSub_Name 
p666_envar_script_new
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <.>
                                                                              more_env: []
                                                                              words: [
                                                                                {<.>}
                                                                                {
                                                                                  (DQ 
                                                                                    (CommandSub
                                                                                      left_token: 
                                                                                        <
Id.Left_DollarParen '$('
                                                                                        >
                                                                                      child: 
                                                                                        (command.Simple
                                                                                          blame_tok: 
                                                                                            <
cube_readlink
                                                                                            >
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {
                                                                                              <
cube_readlink
                                                                                              >
                                                                                            }
                                                                                            {
                                                                                              (DQ 
                                                                                                (${ 
Id.VSub_Name p666_envar_script_new
                                                                                                )
                                                                                              )
                                                                                            }
                                                                                          ]
                                                                                          redirects: []
                                                                                          do_fork: T
                                                                                        )
                                                                                      right: 
                                                                                        <
Id.Eof_RParen _
                                                                                        >
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.AndOr
                                                                              children: [
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <
Id.Lit_LBracket '['
                                                                                    >
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {
                                                                                      <
Id.Lit_LBracket '['
                                                                                      >
                                                                                    }
                                                                                    {
                                                                                      (${ 
Id.VSub_Name p666_debug
                                                                                      )
                                                                                    }
                                                                                    {<-eq>}
                                                                                    {<1>}
                                                                                    {
                                                                                      <
Id.Lit_RBracket ']'
                                                                                      >
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <p666_printf>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<p666_printf>}
                                                                                    {
                                                                                      (DQ 
                                                                                        <'Sourced '> (${ Id.VSub_Name p666_envar_script) <...> <Id.Lit_BadBackslash '\\'> <n>
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                              ops: [<Id.Op_DAmp _>]
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <edit>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<edit>}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.AndOr
                                                                              children: [
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <
Id.Left_DoubleQuote '"'
                                                                                    >
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {
                                                                                      (DQ 
                                                                                        (BracedVarSub
                                                                                          left: 
                                                                                            <
Id.Left_DollarBrace '${'
                                                                                            >
                                                                                          token: 
                                                                                            <
Id.VSub_Name EDITOR
                                                                                            >
                                                                                          var_name: 
EDITOR
                                                                                          suffix_op: 
                                                                                            (suffix_op.Unary
                                                                                              op: 
                                                                                                <
Id.VTest_ColonHyphen _
                                                                                                >
                                                                                              arg_word: 
                                                                                                {
                                                                                                  <
vi
                                                                                                  >
                                                                                                }
                                                                                            )
                                                                                          right: 
                                                                                            <
Id.Right_DollarBrace '}'
                                                                                            >
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                    {
                                                                                      (DQ 
                                                                                        (${ 
Id.VSub_Name p666_envar_script_new
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <
cube_check_return
                                                                                    >
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {
                                                                                      <
cube_check_return
                                                                                      >
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                              ops: [<Id.Op_DPipe _>]
                                                                            )
                                                                            (command.If
                                                                              if_kw: <Id.KW_If if>
                                                                              arms: [
                                                                                (IfArm
                                                                                  keyword: 
                                                                                    <Id.KW_If if>
                                                                                  cond: 
                                                                                    (condition.Shell
                                                                                      commands: [
                                                                                        (command.Sentence
                                                                                          child: 
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
Id.Lit_LBracket '['
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_LBracket '['
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    (${ 
Id.VSub_Name p666_envar_scripts_password
                                                                                                    )
                                                                                                  )
                                                                                                }
                                                                                                {
                                                                                                  <
Id.Lit_Equals '='
                                                                                                  >
                                                                                                }
                                                                                                {(DQ )}
                                                                                                {
                                                                                                  <
Id.Lit_RBracket ']'
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  then_kw: 
                                                                                    <Id.KW_Then then>
                                                                                  action: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <
p666_printf
                                                                                        >
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {
                                                                                          <
p666_printf
                                                                                          >
                                                                                        }
                                                                                        {
                                                                                          (DQ 
                                                                                            <
'Enter the password to re-encrypt '
                                                                                            > (${ Id.VSub_Name p666_envar_script) <':'> <Id.Lit_BadBackslash '\\'> <n>
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.AndOr
                                                                                      children: [
                                                                                        (command.Simple
                                                                                          blame_tok: 
                                                                                            <gpg>
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {<gpg>}
                                                                                            {<--yes>}
                                                                                            {
                                                                                              <
--s2k-mode
                                                                                              >
                                                                                            }
                                                                                            {<3>}
                                                                                            {
                                                                                              <
--s2k-count
                                                                                              >
                                                                                            }
                                                                                            {<65536>}
                                                                                            {
                                                                                              <
--force-mdc
                                                                                              >
                                                                                            }
                                                                                            {
                                                                                              <
--cipher-algo
                                                                                              >
                                                                                            }
                                                                                            {
                                                                                              <
AES256
                                                                                              >
                                                                                            }
                                                                                            {
                                                                                              <
--s2k-digest-algo
                                                                                              >
                                                                                            }
                                                                                            {
                                                                                              <
SHA512
                                                                                              >
                                                                                            }
                                                                                            {<-o>}
                                                                                            {
                                                                                              (DQ 
                                                                                                (${ 
Id.VSub_Name p666_envar_script
                                                                                                )
                                                                                              )
                                                                                            }
                                                                                            {
                                                                                              <
--symmetric
                                                                                              >
                                                                                            }
                                                                                            {
                                                                                              (DQ 
                                                                                                (${ 
Id.VSub_Name p666_envar_script_new
                                                                                                )
                                                                                              )
                                                                                            }
                                                                                          ]
                                                                                          redirects: []
                                                                                          do_fork: T
                                                                                        )
                                                                                        (command.Simple
                                                                                          blame_tok: 
                                                                                            <
cube_check_return
                                                                                            >
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {
                                                                                              <
cube_check_return
                                                                                              >
                                                                                            }
                                                                                          ]
                                                                                          redirects: []
                                                                                          do_fork: T
                                                                                        )
                                                                                      ]
                                                                                      ops: [
                                                                                        <
Id.Op_DPipe _
                                                                                        >
                                                                                      ]
                                                                                    )
                                                                                  ]
                                                                                  spids: [9794 9812]
                                                                                )
                                                                              ]
                                                                              else_kw: 
                                                                                <Id.KW_Else else>
                                                                              else_action: [
                                                                                (command.AndOr
                                                                                  children: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <
Id.Lit_LBracket '['
                                                                                        >
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_LBracket '['
                                                                                          >
                                                                                        }
                                                                                        {
                                                                                          (${ 
Id.VSub_Name p666_debug
                                                                                          )
                                                                                        }
                                                                                        {<-eq>}
                                                                                        {<1>}
                                                                                        {
                                                                                          <
Id.Lit_RBracket ']'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <
p666_printf
                                                                                        >
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {
                                                                                          <
p666_printf
                                                                                          >
                                                                                        }
                                                                                        {
                                                                                          (DQ 
                                                                                            <
'Re-encrypting '
                                                                                            > (${ Id.VSub_Name p666_envar_script) <' ...'> <Id.Lit_BadBackslash '\\'> <n>
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  ]
                                                                                  ops: [
                                                                                    <Id.Op_DAmp _>
                                                                                  ]
                                                                                )
                                                                                (command.AndOr
                                                                                  children: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'p666_gpg_output='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'p666_gpg_output='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'p666_gpg_output='
                                                                                                >
                                                                                              name: 
p666_gpg_output
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                (CommandSub
                                                                                                  left_token: 
                                                                                                    <
Id.Left_DollarParen '$('
                                                                                                    >
                                                                                                  child: 
                                                                                                    (command.Pipeline
                                                                                                      children: [
                                                                                                        (command.Simple
                                                                                                          blame_tok: 
                                                                                                            <
echo
                                                                                                            >
                                                                                                          more_env: []
                                                                                                          words: [
                                                                                                            {
                                                                                                              <
echo
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              (DQ 
                                                                                                                (${ 
Id.VSub_Name p666_envar_scripts_password
                                                                                                                )
                                                                                                              )
                                                                                                            }
                                                                                                          ]
                                                                                                          redirects: []
                                                                                                          do_fork: 
T
                                                                                                        )
                                                                                                        (command.Simple
                                                                                                          blame_tok: 
                                                                                                            <
gpg
                                                                                                            >
                                                                                                          more_env: []
                                                                                                          words: [
                                                                                                            {
                                                                                                              <
gpg
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              <
--batch
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              <
--passphrase-fd
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              <
0
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              <
--yes
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              <
--no-use-agent
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              <
--s2k-mode
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              <
3
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              <
--s2k-count
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              <
65536
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              <
--force-mdc
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              <
--cipher-algo
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              <
AES256
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              <
--s2k-digest-algo
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              <
SHA512
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              <
-o
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              (DQ 
                                                                                                                (${ 
Id.VSub_Name p666_envar_script
                                                                                                                )
                                                                                                              )
                                                                                                            }
                                                                                                            {
                                                                                                              <
--symmetric
                                                                                                              >
                                                                                                            }
                                                                                                            {
                                                                                                              (DQ 
                                                                                                                (${ 
Id.VSub_Name p666_envar_script_new
                                                                                                                )
                                                                                                              )
                                                                                                            }
                                                                                                          ]
                                                                                                          redirects: [
                                                                                                            (Redir
                                                                                                              op: 
                                                                                                                <
Id.Redir_GreatAnd '2>&'
                                                                                                                >
                                                                                                              loc: 
                                                                                                                (redir_loc.Fd
                                                                                                                  fd: 
2
                                                                                                                )
                                                                                                              arg: 
                                                                                                                {
                                                                                                                  <
1
                                                                                                                  >
                                                                                                                }
                                                                                                            )
                                                                                                          ]
                                                                                                          do_fork: 
T
                                                                                                        )
                                                                                                      ]
                                                                                                      ops: [
                                                                                                        <
Id.Op_Pipe _
                                                                                                        >
                                                                                                      ]
                                                                                                    )
                                                                                                  right: 
                                                                                                    <
Id.Eof_RParen _
                                                                                                    >
                                                                                                )
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <
cube_check_return
                                                                                        >
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {
                                                                                          <
cube_check_return
                                                                                          >
                                                                                        }
                                                                                        {
                                                                                          (DQ 
                                                                                            (${ 
Id.VSub_Name p666_gpg_output
                                                                                            )
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  ]
                                                                                  ops: [
                                                                                    <Id.Op_DPipe _>
                                                                                  ]
                                                                                )
                                                                              ]
                                                                              fi_kw: <Id.KW_Fi fi>
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <p666_show_usage>
                                                                              more_env: []
                                                                              words: [
                                                                                {<p666_show_usage>}
                                                                                {
                                                                                  (DQ 
                                                                                    <
'Not implemented'
                                                                                    >
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                    (command.AndOr
                                                                      children: [
                                                                        (command.Simple
                                                                          blame_tok: <rm>
                                                                          more_env: []
                                                                          words: [
                                                                            {<rm>}
                                                                            {<-f>}
                                                                            {
                                                                              (DQ 
                                                                                (${ Id.VSub_Name 
p666_envar_script_new
                                                                                )
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: 
                                                                            <cube_check_return>
                                                                          more_env: []
                                                                          words: [
                                                                            {<cube_check_return>}
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                      ops: [<Id.Op_DPipe _>]
                                                                    )
                                                                  ]
                                                                  spids: [9485 9493]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.Simple
                                                                  blame_tok: <p666_show_usage>
                                                                  more_env: []
                                                                  words: [
                                                                    {<p666_show_usage>}
                                                                    {
                                                                      (DQ 
                                                                        <
'gpg program not found on the PATH'
                                                                        >
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [9467 9482]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.Case
                                                          case_kw: <Id.KW_Case case>
                                                          to_match: 
                                                            (case_arg.Word
                                                              w: {(DQ (${ Id.VSub_Number 1))}
                                                            )
                                                          arms_start: <Id.KW_In in>
                                                          arms: [
                                                            (CaseArm
                                                              left: <show>
                                                              pattern: (pat.Words words:[{<show>}])
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.Pipeline
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: <cat>
                                                                      more_env: []
                                                                      words: [
                                                                        {<cat>}
                                                                        {
                                                                          (DQ 
                                                                            (${ Id.VSub_Name 
p666_envar_script
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <grep>
                                                                      more_env: []
                                                                      words: [
                                                                        {<grep>}
                                                                        {<-v>}
                                                                        {
                                                                          (DQ <'^#!/bin/sh'> 
                                                                            <Id.Lit_Dollar '$'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  ops: [<Id.Op_Pipe _>]
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                            (CaseArm
                                                              left: <source>
                                                              pattern: (pat.Words words:[{<source>}])
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.Simple
                                                                  blame_tok: <.>
                                                                  more_env: []
                                                                  words: [
                                                                    {<.>}
                                                                    {
                                                                      (DQ 
                                                                        (CommandSub
                                                                          left_token: 
                                                                            <Id.Left_DollarParen 
'$('
                                                                            >
                                                                          child: 
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <cube_readlink>
                                                                              more_env: []
                                                                              words: [
                                                                                {<cube_readlink>}
                                                                                {
                                                                                  (DQ 
                                                                                    (${ Id.VSub_Name 
p666_envar_script
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          right: <Id.Eof_RParen _>
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.AndOr
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.Lit_LBracket '['>
                                                                      more_env: []
                                                                      words: [
                                                                        {<Id.Lit_LBracket '['>}
                                                                        {
                                                                          (${ Id.VSub_Name p666_debug)
                                                                        }
                                                                        {<-eq>}
                                                                        {<1>}
                                                                        {<Id.Lit_RBracket ']'>}
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <p666_printf>
                                                                      more_env: []
                                                                      words: [
                                                                        {<p666_printf>}
                                                                        {
                                                                          (DQ <'Sourced '> 
                                                                            (${ Id.VSub_Name 
p666_envar_script
                                                                            ) <...> <Id.Lit_BadBackslash '\\'> <n>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  ops: [<Id.Op_DAmp _>]
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                            (CaseArm
                                                              left: <Id.Lit_Star '*'>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [{<Id.Lit_Star '*'>}]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.Simple
                                                                  blame_tok: <p666_show_usage>
                                                                  more_env: []
                                                                  words: [
                                                                    {<p666_show_usage>}
                                                                    {(DQ <'Not implemented'>)}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                          ]
                                                          arms_end: <Id.KW_Esac esac>
                                                          redirects: []
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{(DQ (${ Id.VSub_Number 1))})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <source>
                                                  pattern: (pat.Words words:[{<source>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <true>
                                                      more_env: []
                                                      words: [{<true>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Exit exit>
                                                      arg_word: {<0>}
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          spids: [9415 9434]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <p666_show_usage>
                                          more_env: []
                                          words: [
                                            {<p666_show_usage>}
                                            {
                                              (DQ <'Sub-COMMAND without -e ENVAR file and '> 
                                                (${ Id.VSub_Name p666_default_envars) <' not found.'>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{(DQ (${ Id.VSub_Number 1))})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <source>
                                          pattern: (pat.Words words:[{<source>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <true>
                                              more_env: []
                                              words: [{<true>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Exit exit>
                                              arg_word: {<0>}
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <p666_show_usage>
                                      more_env: []
                                      words: [
                                        {<p666_show_usage>}
                                        {(DQ <'Unknown sub-COMMAND '> (${ Id.VSub_Number 1))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          spids: [9374 9393]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <p666_show_usage>
                          more_env: []
                          words: [
                            {<p666_show_usage>}
                            {(DQ <'No hosts specified with -h and no sub-COMMAND specified.'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [9349 9367]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Name POSIXCUBE_SOURCED))}
                                {<Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.Lit_LBracket '['>
                                          more_env: []
                                          words: [
                                            {<Id.Lit_LBracket '['>}
                                            {(DQ (${ Id.VSub_Name p666_commands))}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ )}
                                            {<Id.Lit_RBracket ']'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <Id.Lit_LBracket '['>
                                          more_env: []
                                          words: [
                                            {<Id.Lit_LBracket '['>}
                                            {(DQ (${ Id.VSub_Name p666_cubes))}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ )}
                                            {<Id.Lit_RBracket ']'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <p666_show_usage>
                              more_env: []
                              words: [{<p666_show_usage>} {(DQ <'No COMMANDs or CUBEs specified.'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [10297 10332]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(${ Id.VSub_Name p666_debug)}
                            {<-eq>}
                            {<1>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <p666_show_version>
                          more_env: []
                          words: [{<p666_show_version>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.ShFunction
                      name_tok: <p666_handle_remote_response>
                      name: p666_handle_remote_response
                      body: 
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_handle_remote_response_context='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_handle_remote_response_context='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_handle_remote_response_context='>
                                      name: p666_handle_remote_response_context
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Number 1))}
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {
                                                  (DQ 
                                                    (${ Id.VSub_Name 
p666_handle_remote_response_context
                                                    )
                                                  )
                                                }
                                                {<Id.Lit_Equals '='>}
                                                {(DQ )}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_handle_remote_response_context='>
                                      pairs: [
                                        (AssignPair
                                          left: 
                                            <Id.Lit_VarLike 'p666_handle_remote_response_context='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: 
                                                <Id.Lit_VarLike 
'p666_handle_remote_response_context='
                                                >
                                              name: p666_handle_remote_response_context
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <'Last command'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [10380 10398]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_host_output_color='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_host_output_color='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_host_output_color='>
                                      name: p666_host_output_color
                                    )
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name POSIXCUBE_COLOR_GREEN)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_host_output='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_host_output='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_host_output='>
                                      name: p666_host_output
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ )}
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {(${ Id.VSub_Name p666_host_output_result)}
                                                {<-ne>}
                                                {<0>}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_host_output_color='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_host_output_color='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_host_output_color='>
                                              name: p666_host_output_color
                                            )
                                          op: assign_op.Equal
                                          rhs: {(${ Id.VSub_Name POSIXCUBE_COLOR_RED)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_host_output='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_host_output='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_host_output='>
                                              name: p666_host_output
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (${ Id.VSub_Name p666_handle_remote_response_context) <' failed with return code '> (${ Id.VSub_Name p666_host_output_result)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [10421 10436]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(${ Id.VSub_Name p666_debug)}
                                        {<-eq>}
                                        {<1>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_host_output='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_host_output='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_host_output='>
                                              name: p666_host_output
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <'Commands succeeded.'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {(DQ (${ Id.VSub_Name p666_host_output))}
                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                    {(DQ )}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <p666_printf>
                                  more_env: []
                                  words: [
                                    {<p666_printf>}
                                    {
                                      (DQ <'['> (${ Id.VSub_Name p666_host_output_color) 
                                        (${ Id.VSub_Name p666_host) (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <'] %s'> <Id.Lit_BadBackslash '\\'> <n>
                                      )
                                    }
                                    {(DQ (${ Id.VSub_Name p666_host_output))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {(${ Id.VSub_Name p666_host_output_result)}
                                                {<-ne>}
                                                {<0>}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <p666_exit>
                                      more_env: []
                                      words: [{<p666_exit>} {(${ Id.VSub_Name p666_host_output_result)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [10526 10541]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                    )
                    (command.ShFunction
                      name_tok: <p666_remote_ssh>
                      name: p666_remote_ssh
                      body: 
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_remote_ssh_commands='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_remote_ssh_commands='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_remote_ssh_commands='>
                                      name: p666_remote_ssh_commands
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_Number 1))}
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {(${ Id.VSub_Name p666_debug)}
                                    {<-eq>}
                                    {<1>}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <p666_printf>
                                  more_env: []
                                  words: [
                                    {<p666_printf>}
                                    {
                                      (DQ <'['> (${ Id.VSub_Name POSIXCUBE_COLOR_GREEN) 
                                        (${ Id.VSub_Name p666_host) (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <'] Executing ssh '> (${ Id.VSub_Name p666_user) <'@'> 
                                        (${ Id.VSub_Name p666_host) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                        (${ Id.VSub_Name p666_remote_ssh_commands) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' ...'> <Id.Lit_BadBackslash '\\'> 
                                        <n>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.Lit_LBracket '['>
                                                  more_env: []
                                                  words: [
                                                    {<Id.Lit_LBracket '['>}
                                                    {(${ Id.VSub_Name p666_parallel)}
                                                    {<-gt>}
                                                    {<0>}
                                                    {<Id.Lit_RBracket ']'>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.Lit_LBracket '['>
                                                  more_env: []
                                                  words: [
                                                    {<Id.Lit_LBracket '['>}
                                                    {(${ Id.VSub_Name p666_async)}
                                                    {<-eq>}
                                                    {<1>}
                                                    {<Id.Lit_RBracket ']'>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <ssh>
                                          more_env: []
                                          words: [
                                            {<ssh>}
                                            {<-o>}
                                            {<Id.Lit_VarLike 'ConnectTimeout='> <10>}
                                            {(${ Id.VSub_Name p666_user) <Id.Lit_At '@'> 
                                              (${ Id.VSub_Name p666_host)
                                            }
                                            {(${ Id.VSub_Name p666_remote_ssh_commands)}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_GreatAnd '2>&'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<1>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Amp _>
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_wait_pids='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_wait_pids='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_wait_pids='>
                                              name: p666_wait_pids
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <cube_append_str>
                                                    more_env: []
                                                    words: [
                                                      {<cube_append_str>}
                                                      {(DQ (${ Id.VSub_Name p666_wait_pids))}
                                                      {(DQ ($ Id.VSub_Bang '!'))}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [10620 10649]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <ssh>
                                  more_env: []
                                  words: [
                                    {<ssh>}
                                    {<-o>}
                                    {<Id.Lit_VarLike 'ConnectTimeout='> <10>}
                                    {(${ Id.VSub_Name p666_user) <Id.Lit_At '@'> 
                                      (${ Id.VSub_Name p666_host)
                                    }
                                    {(${ Id.VSub_Name p666_remote_ssh_commands)}
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '2>&'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<1>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'p666_host_output_result='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'p666_host_output_result='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'p666_host_output_result='>
                                          name: p666_host_output_result
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_QMark '?')}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(${ Id.VSub_Name p666_debug)}
                                        {<-eq>}
                                        {<1>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <p666_printf>
                                      more_env: []
                                      words: [
                                        {<p666_printf>}
                                        {
                                          (DQ <'Finished executing on '> (${ Id.VSub_Name p666_host) 
                                            <Id.Lit_BadBackslash '\\'> <n>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                                (command.Simple
                                  blame_tok: <p666_handle_remote_response>
                                  more_env: []
                                  words: [
                                    {<p666_handle_remote_response>}
                                    {(DQ <'Remote commands through SSH'>)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Return return>
                                  arg_word: {(${ Id.VSub_Name p666_host_output_result)}
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                    )
                    (command.ShFunction
                      name_tok: <p666_remote_transfer>
                      name: p666_remote_transfer
                      body: 
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_remote_transfer_source='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_remote_transfer_source='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_remote_transfer_source='>
                                      name: p666_remote_transfer_source
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_Number 1))}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_remote_transfer_dest='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_remote_transfer_dest='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_remote_transfer_dest='>
                                      name: p666_remote_transfer_dest
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_Number 2))}
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {(${ Id.VSub_Name p666_debug)}
                                    {<-eq>}
                                    {<1>}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <p666_printf>
                                  more_env: []
                                  words: [
                                    {<p666_printf>}
                                    {
                                      (DQ <'['> (${ Id.VSub_Name POSIXCUBE_COLOR_GREEN) 
                                        (${ Id.VSub_Name p666_host) (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <'] Executing rsync '> 
                                        (${ Id.VSub_Name p666_remote_transfer_source) <' to '> (${ Id.VSub_Name p666_user) <'@'> (${ Id.VSub_Name p666_host) <':'> 
                                        (${ Id.VSub_Name p666_remote_transfer_dest) <' ...'> <Id.Lit_BadBackslash '\\'> <n>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.Lit_LBracket '['>
                                                  more_env: []
                                                  words: [
                                                    {<Id.Lit_LBracket '['>}
                                                    {(${ Id.VSub_Name p666_parallel)}
                                                    {<-gt>}
                                                    {<0>}
                                                    {<Id.Lit_RBracket ']'>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.Lit_LBracket '['>
                                                  more_env: []
                                                  words: [
                                                    {<Id.Lit_LBracket '['>}
                                                    {(${ Id.VSub_Name p666_async)}
                                                    {<-eq>}
                                                    {<1>}
                                                    {<Id.Lit_RBracket ']'>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.Lit_LBracket '['>
                                          more_env: []
                                          words: [
                                            {<Id.Lit_LBracket '['>}
                                            {(${ Id.VSub_Name p666_debug)}
                                            {<-eq>}
                                            {<1>}
                                            {<Id.Lit_RBracket ']'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <p666_printf>
                                          more_env: []
                                          words: [
                                            {<p666_printf>}
                                            {
                                              (DQ <'Rsyncing in background: '> 
                                                (${ Id.VSub_Name p666_remote_transfer_source) <' '> (${ Id.VSub_Name p666_user) <'@'> (${ Id.VSub_Name p666_host) <':'> 
                                                (${ Id.VSub_Name p666_remote_transfer_dest) <Id.Lit_BadBackslash '\\'> <n>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <rsync>
                                          more_env: []
                                          words: [
                                            {<rsync>}
                                            {<-rlpt>}
                                            {(${ Id.VSub_Name p666_remote_transfer_source)}
                                            {
                                              (DQ (${ Id.VSub_Name p666_user) <'@'> 
                                                (${ Id.VSub_Name p666_host) <':'> (${ Id.VSub_Name p666_remote_transfer_dest)
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Amp _>
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_wait_pids='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_wait_pids='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_wait_pids='>
                                              name: p666_wait_pids
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <cube_append_str>
                                                    more_env: []
                                                    words: [
                                                      {<cube_append_str>}
                                                      {(DQ (${ Id.VSub_Name p666_wait_pids))}
                                                      {(DQ ($ Id.VSub_Bang '!'))}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [10848 10877]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(${ Id.VSub_Name p666_debug)}
                                        {<-eq>}
                                        {<1>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <p666_printf>
                                      more_env: []
                                      words: [
                                        {<p666_printf>}
                                        {
                                          (DQ <'Rsyncing in foreground: '> 
                                            (${ Id.VSub_Name p666_remote_transfer_source) <' '> (${ Id.VSub_Name p666_user) <'@'> (${ Id.VSub_Name p666_host) <':'> 
                                            (${ Id.VSub_Name p666_remote_transfer_dest) <Id.Lit_BadBackslash '\\'> <n>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                                (command.Simple
                                  blame_tok: <rsync>
                                  more_env: []
                                  words: [
                                    {<rsync>}
                                    {<-rlpt>}
                                    {(${ Id.VSub_Name p666_remote_transfer_source)}
                                    {
                                      (DQ (${ Id.VSub_Name p666_user) <'@'> (${ Id.VSub_Name p666_host) 
                                        <':'> (${ Id.VSub_Name p666_remote_transfer_dest)
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'p666_host_output_result='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'p666_host_output_result='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'p666_host_output_result='>
                                          name: p666_host_output_result
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_QMark '?')}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <p666_handle_remote_response>
                                  more_env: []
                                  words: [{<p666_handle_remote_response>} {(DQ <rsync>)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_cubedir='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_cubedir='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_cubedir='>
                              name: p666_cubedir
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name p666_cubedir>
                                var_name: p666_cubedir
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_Percent '%'>
                                    arg_word: {<Id.Lit_Slash '/'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_script_name='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_script_name='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_script_name='>
                              name: p666_script_name
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Simple
                                      blame_tok: <cube_current_script_name>
                                      more_env: []
                                      words: [{<cube_current_script_name>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_script_path='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_script_path='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_script_path='>
                              name: p666_script_path
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Simple
                                      blame_tok: <cube_current_script_abs_path>
                                      more_env: []
                                      words: [{<cube_current_script_abs_path>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_remote_script='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_remote_script='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_remote_script='>
                              name: p666_remote_script
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ (${ Id.VSub_Name p666_cubedir) <'/'> 
                                (${ Id.VSub_Name p666_script_name)
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_script_contents='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_script_contents='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_script_contents='>
                              name: p666_script_contents
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'cube_initial_directory='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\$'>
                                  ch: '$'
                                ) <'{PWD}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_script_envar_contents='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_script_envar_contents='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_script_envar_contents='>
                              name: p666_script_envar_contents
                            )
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_envar_scripts_final='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_envar_scripts_final='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_envar_scripts_final='>
                              name: p666_envar_scripts_final
                            )
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [p666_envar_script]
                      iterable: (for_iter.Words words:[{(${ Id.VSub_Name p666_envar_scripts)}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_envar_script_remove='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_envar_script_remove='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_envar_script_remove='>
                                      name: p666_envar_script_remove
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_envar_script_enc_matches='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_envar_script_enc_matches='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_envar_script_enc_matches='>
                                      name: p666_envar_script_enc_matches
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            blame_tok: <expr>
                                            more_env: []
                                            words: [
                                              {<expr>}
                                              {(${ Id.VSub_Name p666_envar_script)}
                                              {<Id.Lit_Colon ':'>}
                                              {(SQ <'.*\\.enc$'>)}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {(${ Id.VSub_Name p666_envar_script_enc_matches)}
                                                {<-ne>}
                                                {<0>}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <cube_command_exists>
                                                      more_env: []
                                                      words: [{<cube_command_exists>} {<gpg>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.Lit_LBracket '['>
                                                  more_env: []
                                                  words: [
                                                    {<Id.Lit_LBracket '['>}
                                                    {(${ Id.VSub_Name p666_debug)}
                                                    {<-eq>}
                                                    {<1>}
                                                    {<Id.Lit_RBracket ']'>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <p666_printf>
                                                  more_env: []
                                                  words: [
                                                    {<p666_printf>}
                                                    {
                                                      (DQ <'Decrypting '> 
                                                        (${ Id.VSub_Name p666_envar_script)
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_envar_script_new='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_envar_script_new='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_envar_script_new='>
                                                      name: p666_envar_script_new
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <echo>
                                                                more_env: []
                                                                words: [
                                                                  {<echo>}
                                                                  {
                                                                    (DQ 
                                                                      (${ Id.VSub_Name 
p666_envar_script
                                                                      )
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: <sed>
                                                                more_env: []
                                                                words: [{<sed>} {(SQ <'s/enc$/dec/g'>)}]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Eof_RParen _>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <Id.Lit_LBracket '['>
                                                              more_env: []
                                                              words: [
                                                                {<Id.Lit_LBracket '['>}
                                                                {
                                                                  (DQ 
                                                                    (${ Id.VSub_Name 
p666_envar_scripts_password
                                                                    )
                                                                  )
                                                                }
                                                                {<Id.Lit_Equals '='>}
                                                                {(DQ )}
                                                                {<Id.Lit_RBracket ']'>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <p666_printf>
                                                      more_env: []
                                                      words: [
                                                        {<p666_printf>}
                                                        {
                                                          (DQ <'Enter the password for '> 
                                                            (${ Id.VSub_Name p666_envar_script) <':'> <Id.Lit_BadBackslash '\\'> <n>
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <gpg>
                                                          more_env: []
                                                          words: [
                                                            {<gpg>}
                                                            {<--output>}
                                                            {
                                                              (DQ 
                                                                (${ Id.VSub_Name 
p666_envar_script_new
                                                                )
                                                              )
                                                            }
                                                            {<--yes>}
                                                            {<--decrypt>}
                                                            {(DQ (${ Id.VSub_Name p666_envar_script))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <cube_check_return>
                                                          more_env: []
                                                          words: [{<cube_check_return>}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DPipe _>]
                                                    )
                                                  ]
                                                  spids: [11224 11242]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {(${ Id.VSub_Name p666_debug)}
                                                        {<-eq>}
                                                        {<1>}
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <p666_printf>
                                                      more_env: []
                                                      words: [
                                                        {<p666_printf>}
                                                        {
                                                          (DQ <'Decrypting '> 
                                                            (${ Id.VSub_Name p666_envar_script) <' ...'> <Id.Lit_BadBackslash '\\'> <n>
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DAmp _>]
                                                )
                                                (command.AndOr
                                                  children: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'p666_gpg_output='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'p666_gpg_output='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'p666_gpg_output='>
                                                              name: p666_gpg_output
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                (CommandSub
                                                                  left_token: 
                                                                    <Id.Left_DollarParen '$('>
                                                                  child: 
                                                                    (command.Pipeline
                                                                      children: [
                                                                        (command.Simple
                                                                          blame_tok: <echo>
                                                                          more_env: []
                                                                          words: [
                                                                            {<echo>}
                                                                            {
                                                                              (DQ 
                                                                                (${ Id.VSub_Name 
p666_envar_scripts_password
                                                                                )
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <gpg>
                                                                          more_env: []
                                                                          words: [
                                                                            {<gpg>}
                                                                            {<--passphrase-fd>}
                                                                            {<0>}
                                                                            {<--batch>}
                                                                            {<--yes>}
                                                                            {<--output>}
                                                                            {
                                                                              (DQ 
                                                                                (${ Id.VSub_Name 
p666_envar_script_new
                                                                                )
                                                                              )
                                                                            }
                                                                            {<--decrypt>}
                                                                            {
                                                                              (DQ 
                                                                                (${ Id.VSub_Name 
p666_envar_script
                                                                                )
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: [
                                                                            (Redir
                                                                              op: 
                                                                                <Id.Redir_GreatAnd 
'2>&'
                                                                                >
                                                                              loc: 
                                                                                (redir_loc.Fd
                                                                                  fd: 2
                                                                                )
                                                                              arg: {<1>}
                                                                            )
                                                                          ]
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                      ops: [<Id.Op_Pipe _>]
                                                                    )
                                                                  right: <Id.Eof_RParen _>
                                                                )
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <cube_check_return>
                                                      more_env: []
                                                      words: [
                                                        {<cube_check_return>}
                                                        {(DQ (${ Id.VSub_Name p666_gpg_output))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DPipe _>]
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_envar_script='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_envar_script='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_envar_script='>
                                                      name: p666_envar_script
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ (${ Id.VSub_Name p666_envar_script_new))}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_envar_script_remove='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_envar_script_remove='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: 
                                                        <Id.Lit_VarLike 'p666_envar_script_remove='>
                                                      name: p666_envar_script_remove
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [11165 11173]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <p666_printf_error>
                                          more_env: []
                                          words: [
                                            {<p666_printf_error>}
                                            {(DQ <'gpg program not found on the PATH'>)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <p666_exit>
                                          more_env: []
                                          words: [{<p666_exit>} {<1>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [11147 11162]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_envar_scripts_final='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_envar_scripts_final='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_envar_scripts_final='>
                                      name: p666_envar_scripts_final
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            blame_tok: <cube_append_str>
                                            more_env: []
                                            words: [
                                              {<cube_append_str>}
                                              {(DQ (${ Id.VSub_Name p666_envar_scripts_final))}
                                              {(DQ (${ Id.VSub_Name p666_envar_script))}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <chmod>
                              more_env: []
                              words: [
                                {<chmod>}
                                {<u> <Id.Lit_Other '+'> <x>}
                                {(DQ (${ Id.VSub_Name p666_envar_script))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_script_contents='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_script_contents='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_script_contents='>
                                      name: p666_script_contents
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ (${ Id.VSub_Name p666_script_contents) <'\n'> <'cd '> 
                                        (${ Id.VSub_Name p666_cubedir) <'/ || cube_check_return\n'> <'. '> (${ Id.VSub_Name p666_cubedir) <'/'> 
                                        (CommandSub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Simple
                                              blame_tok: <basename>
                                              more_env: []
                                              words: [
                                                {<basename>}
                                                {(${ Id.VSub_Name p666_envar_script)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          right: <Id.Eof_RParen _>
                                        ) <' || cube_check_return'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {(${ Id.VSub_Name p666_envar_script_remove)}
                                                {<-eq>}
                                                {<1>}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_script_contents='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_script_contents='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_script_contents='>
                                              name: p666_script_contents
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ (${ Id.VSub_Name p666_script_contents) <'\n'> 
                                                <'rm -f '> (${ Id.VSub_Name p666_cubedir) <'/'> 
                                                (CommandSub
                                                  left_token: <Id.Left_DollarParen '$('>
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <basename>
                                                      more_env: []
                                                      words: [
                                                        {<basename>}
                                                        {(${ Id.VSub_Name p666_envar_script)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  right: <Id.Eof_RParen _>
                                                ) <' || cube_check_return'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [11471 11486]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_envar_scripts='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_envar_scripts='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_envar_scripts='>
                              name: p666_envar_scripts
                            )
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name p666_envar_scripts_final))}
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [p666_cube]
                      iterable: (for_iter.Words words:[{(${ Id.VSub_Name p666_cubes)}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {<-d>}
                                                {(DQ (${ Id.VSub_Name p666_cube))}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_cube_name='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_cube_name='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_cube_name='>
                                              name: p666_cube_name
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <basename>
                                                    more_env: []
                                                    words: [
                                                      {<basename>}
                                                      {(DQ (${ Id.VSub_Name p666_cube))}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {<-r>}
                                                        {
                                                          (DQ (${ Id.VSub_Name p666_cube) <'/'> 
                                                            (${ Id.VSub_Name p666_cube_name) <.sh>
                                                          )
                                                        }
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <chmod>
                                              more_env: []
                                              words: [
                                                {<chmod>}
                                                {<u> <Id.Lit_Other '+'> <x>}
                                                {(${ Id.VSub_Name p666_cube) <'/'> <Id.Lit_Star '*'> 
                                                  <.sh>
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_cube='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_cube='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_cube='>
                                                      name: p666_cube
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (BracedVarSub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name p666_cube>
                                                        var_name: p666_cube
                                                        suffix_op: 
                                                          (suffix_op.Unary
                                                            op: <Id.VOp1_Percent '%'>
                                                            arg_word: {<Id.Lit_Slash '/'>}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_script_contents='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_script_contents='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_script_contents='>
                                                      name: p666_script_contents
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ (${ Id.VSub_Name p666_script_contents) 
                                                        <'\n'> <'cd '> (${ Id.VSub_Name p666_cubedir) <'/'> (${ Id.VSub_Name p666_cube) <'/ || cube_check_return\n'> 
                                                        <'cube_echo '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'Started cube: '> 
                                                        (${ Id.VSub_Name p666_cube_name) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> <'POSIXCUBE_CUBE_NAME='> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                          ch: '"'
                                                        ) (${ Id.VSub_Name p666_cube_name) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                        <' POSIXCUBE_CUBE_NAME_WITH_PREFIX='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                                                        (${ Id.VSub_Name p666_cube_name) <.sh> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' . '> 
                                                        (${ Id.VSub_Name p666_cubedir) <'/'> (${ Id.VSub_Name p666_cube) <'/'> (${ Id.VSub_Name p666_cube_name) <'.sh || cube_check_return '> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                          ch: '"'
                                                        ) <'Last command in cube'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> 
                                                        <'cube_echo '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'Finished cube: '> 
                                                        (${ Id.VSub_Name p666_cube_name) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <Id.Lit_LBracket '['>
                                                              more_env: []
                                                              words: [
                                                                {<Id.Lit_LBracket '['>}
                                                                {<-r>}
                                                                {
                                                                  (DQ (${ Id.VSub_Name p666_cube) 
                                                                    <'/envars.sh'>
                                                                  )
                                                                }
                                                                {<Id.Lit_RBracket ']'>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: 
                                                        <Id.Lit_VarLike 
'p666_script_envar_contents='
                                                        >
                                                      pairs: [
                                                        (AssignPair
                                                          left: 
                                                            <Id.Lit_VarLike 
'p666_script_envar_contents='
                                                            >
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'p666_script_envar_contents='
                                                                >
                                                              name: p666_script_envar_contents
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                (${ Id.VSub_Name 
p666_script_envar_contents
                                                                ) <'\n'> <'. '> (${ Id.VSub_Name p666_cubedir) <'/'> (${ Id.VSub_Name p666_cube) 
                                                                <'/envars.sh || cube_check_return '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'Failed loading cube envars'> 
                                                                (word_part.EscapedLiteral
                                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                                  ch: '"'
                                                                ) <'\n'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [11683 11699]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [11573 11593]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <p666_printf_error>
                                          more_env: []
                                          words: [
                                            {<p666_printf_error>}
                                            {
                                              (DQ <'Could not find '> (${ Id.VSub_Name p666_cube_name) 
                                                <'.sh in cube '> (${ Id.VSub_Name p666_cube) <' directory.'>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <p666_exit>
                                          more_env: []
                                          words: [{<p666_exit>} {<1>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [11543 11558]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {<-r>}
                                                {(DQ (${ Id.VSub_Name p666_cube))}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_cube_name='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_cube_name='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_cube_name='>
                                              name: p666_cube_name
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <basename>
                                                    more_env: []
                                                    words: [
                                                      {<basename>}
                                                      {(DQ (${ Id.VSub_Name p666_cube))}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <chmod>
                                      more_env: []
                                      words: [
                                        {<chmod>}
                                        {<u> <Id.Lit_Other '+'> <x>}
                                        {(DQ (${ Id.VSub_Name p666_cube))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_script_contents='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_script_contents='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_script_contents='>
                                              name: p666_script_contents
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ (${ Id.VSub_Name p666_script_contents) <'\n'> <'cd '> 
                                                (${ Id.VSub_Name p666_cubedir) <'/ || cube_check_return\n'> <'cube_echo '> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) <'Started cube: '> (${ Id.VSub_Name p666_cube_name) 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) <'\n'> <'POSIXCUBE_CUBE_NAME='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                (${ Id.VSub_Name p666_cube_name) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                <' POSIXCUBE_CUBE_NAME_WITH_PREFIX='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                                                (${ Id.VSub_Name p666_cube_name) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' . '> 
                                                (${ Id.VSub_Name p666_cubedir) <'/'> (${ Id.VSub_Name p666_cube_name) <' || cube_check_return '> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) <'Last command in cube'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> 
                                                <'cube_echo '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'Finished cube: '> 
                                                (${ Id.VSub_Name p666_cube_name) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [11753 11768]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {<-r>}
                                                {(DQ (${ Id.VSub_Name p666_cube) <.sh>)}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_cube_name='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_cube_name='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_cube_name='>
                                              name: p666_cube_name
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <basename>
                                                    more_env: []
                                                    words: [
                                                      {<basename>}
                                                      {(DQ (${ Id.VSub_Name p666_cube) <.sh>)}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <chmod>
                                      more_env: []
                                      words: [
                                        {<chmod>}
                                        {<u> <Id.Lit_Other '+'> <x>}
                                        {(DQ (${ Id.VSub_Name p666_cube) <.sh>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_script_contents='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_script_contents='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_script_contents='>
                                              name: p666_script_contents
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ (${ Id.VSub_Name p666_script_contents) <'\n'> <'cd '> 
                                                (${ Id.VSub_Name p666_cubedir) <'/ || cube_check_return\n'> <'cube_echo '> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) <'Started cube: '> (${ Id.VSub_Name p666_cube_name) 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) <'\n'> <'POSIXCUBE_CUBE_NAME='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                (${ Id.VSub_Name p666_cube_name) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                <' POSIXCUBE_CUBE_NAME_WITH_PREFIX='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                                                (${ Id.VSub_Name p666_cube_name) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' . '> 
                                                (${ Id.VSub_Name p666_cubedir) <'/'> (${ Id.VSub_Name p666_cube_name) <' || cube_check_return '> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) <'Last command in cube'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> 
                                                <'cube_echo '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'Finished cube: '> 
                                                (${ Id.VSub_Name p666_cube_name) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [11852 11868]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <p666_printf_error>
                                  more_env: []
                                  words: [
                                    {<p666_printf_error>}
                                    {
                                      (DQ <'Cube '> (${ Id.VSub_Name p666_cube) 
                                        <
' could not be found as a directory or script, or you don\'t have read permissions.'
                                        >
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <p666_exit>
                                  more_env: []
                                  words: [{<p666_exit>} {<1>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_script_contents='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_script_contents='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_script_contents='>
                                      name: p666_script_contents
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ (${ Id.VSub_Name p666_script_contents) 
                                        (${ Id.VSub_Name POSIXCUBE_NEWLINE) <'cd '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{cube_initial_directory}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [p666_cube]
                      iterable: (for_iter.Words words:[{(${ Id.VSub_Name p666_include_cubes)}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {<-d>}
                                                {(DQ (${ Id.VSub_Name p666_cube))}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_cube_name='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_cube_name='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_cube_name='>
                                              name: p666_cube_name
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <basename>
                                                    more_env: []
                                                    words: [
                                                      {<basename>}
                                                      {(DQ (${ Id.VSub_Name p666_cube))}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {<-r>}
                                                        {
                                                          (DQ (${ Id.VSub_Name p666_cube) <'/'> 
                                                            (${ Id.VSub_Name p666_cube_name) <.sh>
                                                          )
                                                        }
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <chmod>
                                              more_env: []
                                              words: [
                                                {<chmod>}
                                                {<u> <Id.Lit_Other '+'> <x>}
                                                {(${ Id.VSub_Name p666_cube) <'/'> <Id.Lit_Star '*'> 
                                                  <.sh>
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [12039 12059]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [12009 12024]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {<-r>}
                                                {(DQ (${ Id.VSub_Name p666_cube))}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <chmod>
                                      more_env: []
                                      words: [
                                        {<chmod>}
                                        {<u> <Id.Lit_Other '+'> <x>}
                                        {(DQ (${ Id.VSub_Name p666_cube))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [12079 12094]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {<-r>}
                                                {(DQ (${ Id.VSub_Name p666_cube) <.sh>)}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <chmod>
                                      more_env: []
                                      words: [
                                        {<chmod>}
                                        {<u> <Id.Lit_Other '+'> <x>}
                                        {(DQ (${ Id.VSub_Name p666_cube) <.sh>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [12110 12126]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <p666_printf_error>
                                  more_env: []
                                  words: [
                                    {<p666_printf_error>}
                                    {
                                      (DQ <'Cube '> (${ Id.VSub_Name p666_cube) 
                                        <
' could not be found as a directory or script, or you don\'t have read permissions.'
                                        >
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <p666_exit>
                                  more_env: []
                                  words: [{<p666_exit>} {<1>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ (${ Id.VSub_Name p666_commands))}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ )}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_script_contents='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_script_contents='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_script_contents='>
                                      name: p666_script_contents
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ (${ Id.VSub_Name p666_script_contents) <'\n'> <'  '> 
                                        (${ Id.VSub_Name p666_commands)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [12170 12189]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_script='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_script='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_script='>
                              name: p666_script
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <'./cube_exec.sh'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<HEREDOC>}
                              here_end_tok: <Id.Undefined_Tok ''>
                              stdin_parts: [
                                <'#!/bin/sh\n'>
                                <'POSIXCUBE_APIS_ONLY=1\n'>
                                <'. '>
                                (${ Id.VSub_Name p666_remote_script)
                                <'\n'>
                                <'if [ '>
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\$'>
                                  ch: '$'
                                )
                                <'? -ne 0 ] ; then\n'>
                                <'  echo '>
                                <Id.Right_DoubleQuote '"'>
                                <'Could not source '>
                                (${ Id.VSub_Name p666_remote_script)
                                <' script'>
                                <Id.Right_DoubleQuote '"'>
                                <' 1>&2\n'>
                                <'  exit 1\n'>
                                <'fi\n'>
                                <'\n'>
                                <'POSIXCUBE_DEBUG='>
                                (${ Id.VSub_Name p666_debug)
                                <'\n'>
                                <'cubevar_api_roles='>
                                <Id.Right_DoubleQuote '"'>
                                (${ Id.VSub_Name p666_roles)
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                (${ Id.VSub_Name p666_script_envar_contents)
                                <'\n'>
                                (${ Id.VSub_Name p666_options)
                                <'\n'>
                                (${ Id.VSub_Name p666_script_contents)
                                <'\n'>
                                <'\n'>
                                <'if [ '>
                                <Id.Right_DoubleQuote '"'>
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\$'>
                                  ch: '$'
                                )
                                <'{cubevar_api_post_restart}'>
                                <Id.Right_DoubleQuote '"'>
                                <' != '>
                                <Id.Right_DoubleQuote '"'>
                                <Id.Right_DoubleQuote '"'>
                                <' ]; then\n'>
                                <'  for p666_post in '>
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\$'>
                                  ch: '$'
                                )
                                <'{cubevar_api_post_restart}; do\n'>
                                <'    cube_service restart '>
                                <Id.Right_DoubleQuote '"'>
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\$'>
                                  ch: '$'
                                )
                                <'{p666_post}'>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'  done\n'>
                                <'fi\n'>
                              ]
                            )
                        )
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ (${ Id.VSub_Name p666_script))}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <chmod>
                      more_env: []
                      words: [{<chmod>} {<Id.Lit_Other '+'> <x>} {(DQ (${ Id.VSub_Name p666_script))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_upload='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_upload='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_upload='>
                              name: p666_upload
                            )
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name p666_script) <' '>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ (${ Id.VSub_Name p666_cubes))}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ )}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [p666_cube]
                              iterable: (for_iter.Words words:[{(${ Id.VSub_Name p666_cubes)}])
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {<-d>}
                                                        {(DQ (${ Id.VSub_Name p666_cube))}
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_cube_name='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_cube_name='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_cube_name='>
                                                      name: p666_cube_name
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <basename>
                                                            more_env: []
                                                            words: [
                                                              {<basename>}
                                                              {(DQ (${ Id.VSub_Name p666_cube))}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Eof_RParen _>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <Id.Lit_LBracket '['>
                                                              more_env: []
                                                              words: [
                                                                {<Id.Lit_LBracket '['>}
                                                                {<-r>}
                                                                {
                                                                  (DQ (${ Id.VSub_Name p666_cube) 
                                                                    <'/'> (${ Id.VSub_Name p666_cube_name) <.sh>
                                                                  )
                                                                }
                                                                {<Id.Lit_RBracket ']'>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'p666_cube='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'p666_cube='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'p666_cube='>
                                                              name: p666_cube
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (BracedVarSub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: <Id.VSub_Name p666_cube>
                                                                var_name: p666_cube
                                                                suffix_op: 
                                                                  (suffix_op.Unary
                                                                    op: <Id.VOp1_Percent '%'>
                                                                    arg_word: {<Id.Lit_Slash '/'>}
                                                                  )
                                                                right: <Id.Right_DollarBrace '}'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'p666_upload='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'p666_upload='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'p666_upload='>
                                                              name: p666_upload
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ (${ Id.VSub_Name p666_upload) <' '> 
                                                                (${ Id.VSub_Name p666_cube)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [12392 12412]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [12362 12377]
                                        )
                                        (IfArm
                                          keyword: <Id.KW_Elif elif>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {<-r>}
                                                        {(DQ (${ Id.VSub_Name p666_cube))}
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_cube_name='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_cube_name='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_cube_name='>
                                                      name: p666_cube_name
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <basename>
                                                            more_env: []
                                                            words: [
                                                              {<basename>}
                                                              {(DQ (${ Id.VSub_Name p666_cube))}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Eof_RParen _>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_upload='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_upload='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_upload='>
                                                      name: p666_upload
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ (${ Id.VSub_Name p666_upload) <' '> 
                                                        (${ Id.VSub_Name p666_cube)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [12438 12453]
                                        )
                                        (IfArm
                                          keyword: <Id.KW_Elif elif>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {<-r>}
                                                        {(DQ (${ Id.VSub_Name p666_cube) <.sh>)}
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_cube_name='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_cube_name='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_cube_name='>
                                                      name: p666_cube_name
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <basename>
                                                            more_env: []
                                                            words: [
                                                              {<basename>}
                                                              {(DQ (${ Id.VSub_Name p666_cube) <.sh>)}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Eof_RParen _>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_upload='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_upload='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_upload='>
                                                      name: p666_upload
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ (${ Id.VSub_Name p666_upload) <' '> 
                                                        (${ Id.VSub_Name p666_cube) <.sh>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [12480 12496]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          spids: [12326 12345]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ (${ Id.VSub_Name p666_include_cubes))}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ )}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [p666_cube]
                              iterable: 
                                (for_iter.Words
                                  words: [{(${ Id.VSub_Name p666_include_cubes)}]
                                )
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {<-d>}
                                                        {(DQ (${ Id.VSub_Name p666_cube))}
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_cube_name='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_cube_name='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_cube_name='>
                                                      name: p666_cube_name
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <basename>
                                                            more_env: []
                                                            words: [
                                                              {<basename>}
                                                              {(DQ (${ Id.VSub_Name p666_cube))}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Eof_RParen _>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <Id.Lit_LBracket '['>
                                                              more_env: []
                                                              words: [
                                                                {<Id.Lit_LBracket '['>}
                                                                {<-r>}
                                                                {
                                                                  (DQ (${ Id.VSub_Name p666_cube) 
                                                                    <'/'> (${ Id.VSub_Name p666_cube_name) <.sh>
                                                                  )
                                                                }
                                                                {<Id.Lit_RBracket ']'>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'p666_cube='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'p666_cube='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'p666_cube='>
                                                              name: p666_cube
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (BracedVarSub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: <Id.VSub_Name p666_cube>
                                                                var_name: p666_cube
                                                                suffix_op: 
                                                                  (suffix_op.Unary
                                                                    op: <Id.VOp1_Percent '%'>
                                                                    arg_word: {<Id.Lit_Slash '/'>}
                                                                  )
                                                                right: <Id.Right_DollarBrace '}'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'p666_upload='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'p666_upload='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'p666_upload='>
                                                              name: p666_upload
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ (${ Id.VSub_Name p666_upload) <' '> 
                                                                (${ Id.VSub_Name p666_cube)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [12601 12621]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [12571 12586]
                                        )
                                        (IfArm
                                          keyword: <Id.KW_Elif elif>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {<-r>}
                                                        {(DQ (${ Id.VSub_Name p666_cube))}
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_cube_name='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_cube_name='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_cube_name='>
                                                      name: p666_cube_name
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <basename>
                                                            more_env: []
                                                            words: [
                                                              {<basename>}
                                                              {(DQ (${ Id.VSub_Name p666_cube))}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Eof_RParen _>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_upload='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_upload='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_upload='>
                                                      name: p666_upload
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ (${ Id.VSub_Name p666_upload) <' '> 
                                                        (${ Id.VSub_Name p666_cube)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [12647 12662]
                                        )
                                        (IfArm
                                          keyword: <Id.KW_Elif elif>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {<-r>}
                                                        {(DQ (${ Id.VSub_Name p666_cube) <.sh>)}
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_cube_name='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_cube_name='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_cube_name='>
                                                      name: p666_cube_name
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <basename>
                                                            more_env: []
                                                            words: [
                                                              {<basename>}
                                                              {(DQ (${ Id.VSub_Name p666_cube) <.sh>)}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Eof_RParen _>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p666_upload='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p666_upload='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p666_upload='>
                                                      name: p666_upload
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ (${ Id.VSub_Name p666_upload) <' '> 
                                                        (${ Id.VSub_Name p666_cube) <.sh>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [12689 12705]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <p666_printf_error>
                                          more_env: []
                                          words: [
                                            {<p666_printf_error>}
                                            {(DQ <'Could not find '> (${ Id.VSub_Name p666_cube))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <p666_exit>
                                          more_env: []
                                          words: [{<p666_exit>} {<1>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          spids: [12535 12554]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(${ Id.VSub_Name p666_quiet)}
                            {<-eq>}
                            {<0>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <p666_printf>
                          more_env: []
                          words: [
                            {<p666_printf>}
                            {
                              (DQ <'Transferring files to hosts: '> (${ Id.VSub_Name p666_hosts) 
                                <' ...'> <Id.Lit_BadBackslash '\\'> <n>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_async='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_async='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p666_async='> name:p666_async)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(${ Id.VSub_Name p666_skip_init)}
                                        {<-eq>}
                                        {<0>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_wait_pids='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_wait_pids='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_wait_pids='>
                                      name: p666_wait_pids
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ )}
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [p666_host]
                              iterable: (for_iter.Words words:[{(${ Id.VSub_Name p666_hosts)}])
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Simple
                                      blame_tok: <p666_remote_ssh>
                                      more_env: []
                                      words: [
                                        {<p666_remote_ssh>}
                                        {
                                          (DQ <'[ ! -d '> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) (${ Id.VSub_Name p666_cubedir) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                            <' ] && mkdir -p '> (${ Id.VSub_Name p666_cubedir) <'; RC='> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\$'>
                                              ch: '$'
                                            ) 
                                            <
'?; command -v rsync >/dev/null 2>&1 || (command -v apt-get >/dev/null 2>&1 && apt-get -y install rsync); exit '
                                            > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{RC};'>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {(DQ (${ Id.VSub_Name p666_wait_pids))}
                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                {(DQ )}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.Lit_LBracket '['>
                                          more_env: []
                                          words: [
                                            {<Id.Lit_LBracket '['>}
                                            {(${ Id.VSub_Name p666_debug)}
                                            {<-eq>}
                                            {<1>}
                                            {<Id.Lit_RBracket ']'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <p666_printf>
                                          more_env: []
                                          words: [
                                            {<p666_printf>}
                                            {
                                              (DQ <'Waiting on initialization PIDs: '> 
                                                (${ Id.VSub_Name p666_wait_pids) <' ...'> <Id.Lit_BadBackslash '\\'> <n>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (command.Simple
                                      blame_tok: <wait>
                                      more_env: []
                                      words: [{<wait>} {(${ Id.VSub_Name p666_wait_pids)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p666_host_output_result='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p666_host_output_result='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'p666_host_output_result='>
                                              name: p666_host_output_result
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '?')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <p666_handle_remote_response>
                                      more_env: []
                                      words: [
                                        {<p666_handle_remote_response>}
                                        {(DQ <'Remote commands through SSH'>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [12866 12885]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [12797 12812]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_wait_pids='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_wait_pids='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_wait_pids='>
                              name: p666_wait_pids
                            )
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [p666_host]
                      iterable: (for_iter.Words words:[{(${ Id.VSub_Name p666_hosts)}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {(${ Id.VSub_Name p666_skip_init)}
                                                {<-eq>}
                                                {<0>}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <p666_remote_transfer>
                                      more_env: []
                                      words: [
                                        {<p666_remote_transfer>}
                                        {
                                          (DQ (${ Id.VSub_Name p666_upload) <' '> 
                                            (${ Id.VSub_Name p666_script_path) <' '> (${ Id.VSub_Name p666_envar_scripts)
                                          )
                                        }
                                        {(DQ (${ Id.VSub_Name p666_cubedir) <'/'>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [12960 12975]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <p666_remote_transfer>
                                  more_env: []
                                  words: [
                                    {<p666_remote_transfer>}
                                    {
                                      (DQ (${ Id.VSub_Name p666_upload) <' '> 
                                        (${ Id.VSub_Name p666_envar_scripts)
                                      )
                                    }
                                    {(DQ (${ Id.VSub_Name p666_cubedir) <'/'>)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ (${ Id.VSub_Name p666_wait_pids))}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ )}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {(${ Id.VSub_Name p666_debug)}
                                    {<-eq>}
                                    {<1>}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <p666_printf>
                                  more_env: []
                                  words: [
                                    {<p666_printf>}
                                    {
                                      (DQ <'Waiting on transfer PIDs: '> 
                                        (${ Id.VSub_Name p666_wait_pids) <' ...'> <Id.Lit_BadBackslash '\\'> <n>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.Simple
                              blame_tok: <wait>
                              more_env: []
                              words: [{<wait>} {(${ Id.VSub_Name p666_wait_pids)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_host_output_result='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_host_output_result='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_host_output_result='>
                                      name: p666_host_output_result
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '?')}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <p666_handle_remote_response>
                              more_env: []
                              words: [{<p666_handle_remote_response>} {(DQ <rsync>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [13033 13052]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_wait_pids='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_wait_pids='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'p666_wait_pids='>
                              name: p666_wait_pids
                            )
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p666_async='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p666_async='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p666_async='> name:p666_async)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name p666_async_cubes)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [p666_host]
                      iterable: (for_iter.Words words:[{(${ Id.VSub_Name p666_hosts)}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {(${ Id.VSub_Name p666_quiet)}
                                    {<-eq>}
                                    {<0>}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <p666_printf>
                                  more_env: []
                                  words: [
                                    {<p666_printf>}
                                    {
                                      (DQ <'['> (${ Id.VSub_Name POSIXCUBE_COLOR_GREEN) 
                                        (${ Id.VSub_Name p666_host) (${ Id.VSub_Name POSIXCUBE_COLOR_RESET) <'] Executing on '> (${ Id.VSub_Name p666_host) <' ...'> 
                                        <Id.Lit_BadBackslash '\\'> <n>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.Simple
                              blame_tok: <p666_remote_ssh>
                              more_env: []
                              words: [
                                {<p666_remote_ssh>}
                                {
                                  (DQ <'. '> (${ Id.VSub_Name p666_cubedir) <'/'> 
                                    (${ Id.VSub_Name p666_script)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_remote_ssh_result='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_remote_ssh_result='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_remote_ssh_result='>
                                      name: p666_remote_ssh_result
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '?')}
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {(${ Id.VSub_Name p666_async)}
                                                {<-eq>}
                                                {<0>}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.Lit_LBracket '['>
                                          more_env: []
                                          words: [
                                            {<Id.Lit_LBracket '['>}
                                            {(${ Id.VSub_Name p666_skip_host_errors)}
                                            {<-eq>}
                                            {<0>}
                                            {<Id.Lit_RBracket ']'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <Id.Lit_LBracket '['>
                                          more_env: []
                                          words: [
                                            {<Id.Lit_LBracket '['>}
                                            {(${ Id.VSub_Name p666_remote_ssh_result)}
                                            {<-ne>}
                                            {<0>}
                                            {<Id.Lit_RBracket ']'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <p666_exit>
                                          more_env: []
                                          words: [
                                            {<p666_exit>}
                                            {(${ Id.VSub_Name p666_remote_ssh_result)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                    )
                                  ]
                                  spids: [13186 13201]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ (${ Id.VSub_Name p666_wait_pids))}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ )}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {(${ Id.VSub_Name p666_debug)}
                                    {<-eq>}
                                    {<1>}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <p666_printf>
                                  more_env: []
                                  words: [
                                    {<p666_printf>}
                                    {
                                      (DQ <'Waiting on cube execution PIDs: '> 
                                        (${ Id.VSub_Name p666_wait_pids) <' ...'> <Id.Lit_BadBackslash '\\'> <n>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.Simple
                              blame_tok: <wait>
                              more_env: []
                              words: [{<wait>} {(${ Id.VSub_Name p666_wait_pids)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p666_host_output_result='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p666_host_output_result='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'p666_host_output_result='>
                                      name: p666_host_output_result
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '?')}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <p666_handle_remote_response>
                              more_env: []
                              words: [{<p666_handle_remote_response>} {(DQ <'Cube execution'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [13246 13265]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <p666_exit>
                      more_env: []
                      words: [{<p666_exit>} {<0>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [10276 10294]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [7333 7351]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
  ]
)