(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:__git_printf_supports_v)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [289]
        )
      ]
    )
    (command.Simple
      words: [
        {(printf)}
        {(-v)}
        {(__git_printf_supports_v)}
        {(--)}
        {(SQ (Token id:Id.Lit_Chars val:'%s' span_id:300))}
        {(yes)}
      ]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:305)
          fd: -1
          arg_word: {(/dev/null)}
        )
        (redir.Redir op:(Token id:Id.Redir_GreatAnd val:'2>&' span_id:308) fd:2 arg_word:{(1)})
      ]
    )
    (command.ShFunction
      name: __git_ps1_show_upstream
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(key)} {(value)})
            (C {(local)} {(svn_remote)} {(svn_url_pattern)} {(count)} {(n)})
            (C {(local)} {(Id.Lit_VarLike 'upstream=') (git)} {(Id.Lit_VarLike 'legacy=') (DQ )} 
              {(Id.Lit_VarLike 'verbose=') (DQ )} {(Id.Lit_VarLike 'name=') (DQ )}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:svn_remote)
                  op: assign_op.Equal
                  rhs: {(sh_array_literal left:(Token id:Id.Op_LParen val:'(' span_id:364))}
                  spids: [363]
                )
              ]
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'output=') 
                (DQ 
                  (command_sub
                    left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:376)
                    command_list: 
                      (command.CommandList
                        children: [
                          (command.Pipeline
                            children: [
                              (command.Simple
                                words: [
                                  {(git)}
                                  {(config)}
                                  {(-z)}
                                  {(--get-regexp)}
                                  {
                                    (SQ 
                                      (Token
                                        id: Id.Lit_Chars
                                        val: '^(svn-remote\\..*\\.url|bash\\.showupstream)$'
                                        span_id: 386
                                      )
                                    )
                                  }
                                ]
                                redirects: [
                                  (redir.Redir
                                    op: (Token id:Id.Redir_Great val:'2>' span_id:389)
                                    fd: 2
                                    arg_word: {(/dev/null)}
                                  )
                                ]
                              )
                              (C {(tr)} {(SQ (Token id:Id.Lit_Chars val:'\\0\\n' span_id:397))} 
                                {(SQ (Token id:Id.Lit_Chars val:'\\n ' span_id:401))}
                              )
                            ]
                            negated: F
                          )
                        ]
                      )
                  )
                )
              }
            )
            (command.WhileUntil
              keyword: (Token id:Id.KW_While val:while span_id:407)
              cond: [
                (command.Sentence
                  child: (C {(read)} {(-r)} {(key)} {(value)})
                  terminator: (Token id:Id.Op_Semi val:';' span_id:416)
                )
              ]
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {(DQ ($ Id.VSub_DollarName '$key'))}
                      arms: [
                        (case_arm
                          pat_list: [{(bash.showupstream)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:GIT_PS1_SHOWUPSTREAM)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$value'))}
                                  spids: [434]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_z
                                              child: {(DQ (${ Id.VSub_Name GIT_PS1_SHOWUPSTREAM))}
                                            )
                                        )
                                      terminator: (Token id:Id.Op_Semi val:';' span_id:453)
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:p)
                                          op: assign_op.Equal
                                          rhs: {(DQ )}
                                          spids: [458]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: (Token id:Id.ControlFlow_Return val:return span_id:463)
                                    )
                                  ]
                                  spids: [440 455]
                                )
                              ]
                            )
                          ]
                          spids: [430 431 469 -1]
                        )
                        (case_arm
                          pat_list: [{(svn-remote.) (Id.Lit_Star '*') (.url)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: svn_remote
                                      index: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (word_part.ArithSub
                                                anode: 
                                                  (arith_expr.Binary
                                                    op_id: Id.Arith_Plus
                                                    left: 
                                                      (arith_expr.ArithWord
                                                        w: 
                                                          {
                                                            (braced_var_sub
                                                              token: 
                                                                (Token
                                                                  id: Id.VSub_Name
                                                                  val: svn_remote
                                                                  span_id: 501
                                                                )
                                                              prefix_op: (Id.VSub_Pound)
                                                              bracket_op: 
                                                                (bracket_op.WholeArray
                                                                  op_id: Id.Lit_At
                                                                )
                                                            )
                                                          }
                                                      )
                                                    right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                  )
                                              )
                                            }
                                        )
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$value'))}
                                  spids: [478]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:svn_url_pattern)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$svn_url_pattern') 
                                        (word_part.EscapedLiteral
                                          token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:517)
                                        ) ('|') ($ Id.VSub_DollarName '$value')
                                      )
                                    }
                                  spids: [514]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:upstream)
                                  op: assign_op.Equal
                                  rhs: {(svn) (Id.Lit_Other '+') (git)}
                                  spids: [523]
                                )
                              ]
                            )
                          ]
                          spids: [472 475 532 -1]
                        )
                      ]
                    )
                  ]
                )
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_TLess val:'<<<' span_id:540)
                  fd: -1
                  arg_word: {(DQ ($ Id.VSub_DollarName '$output'))}
                )
              ]
            )
            (command.ForEach
              iter_name: option
              iter_words: [{(${ Id.VSub_Name GIT_PS1_SHOWUPSTREAM)}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {(DQ ($ Id.VSub_DollarName '$option'))}
                      arms: [
                        (case_arm
                          pat_list: [{(git)} {(svn)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:upstream)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$option'))}
                                  spids: [580]
                                )
                              ]
                            )
                          ]
                          spids: [575 578 585 -1]
                        )
                        (case_arm
                          pat_list: [{(verbose)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:verbose)
                                  op: assign_op.Equal
                                  rhs: {(1)}
                                  spids: [591]
                                )
                              ]
                            )
                          ]
                          spids: [588 589 594 -1]
                        )
                        (case_arm
                          pat_list: [{(legacy)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:legacy)
                                  op: assign_op.Equal
                                  rhs: {(1)}
                                  spids: [600]
                                )
                              ]
                            )
                          ]
                          spids: [597 598 603 -1]
                        )
                        (case_arm
                          pat_list: [{(name)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:name)
                                  op: assign_op.Equal
                                  rhs: {(1)}
                                  spids: [609]
                                )
                              ]
                            )
                          ]
                          spids: [606 607 612 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName '$upstream'))}
              arms: [
                (case_arm
                  pat_list: [{(git)}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:upstream)
                          op: assign_op.Equal
                          rhs: {(DQ ('@{upstream}'))}
                          spids: [638]
                        )
                      ]
                    )
                  ]
                  spids: [635 636 643 -1]
                )
                (case_arm
                  pat_list: [{(svn) (Id.Lit_Star '*')}]
                  action: [
                    (C {(local)} {(-a)} {(svn_upstream)})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:svn_upstream)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (sh_array_literal
                                left: (Token id:Id.Op_LParen val:'(' span_id:667)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:668)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (command.Simple
                                              words: [
                                                {(git)}
                                                {(log)}
                                                {(--first-parent)}
                                                {(-1)}
                                                {(--grep) (Id.Lit_Equals '=') 
                                                  (DQ ('^git-svn-id: ') (Id.Lit_Other '\\') ('(') 
                                                    (braced_var_sub
                                                      token: 
                                                        (Token
                                                          id: Id.VSub_Name
                                                          val: svn_url_pattern
                                                          span_id: 686
                                                        )
                                                      suffix_op: 
                                                        (suffix_op.Unary
                                                          op_id: Id.VOp1_Pound
                                                          arg_word: {('??')}
                                                        )
                                                    ) (Id.Lit_Other '\\') (')')
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (redir.Redir
                                                  op: (Token id:Id.Redir_Great val:'2>' span_id:694)
                                                  fd: 2
                                                  arg_word: {(/dev/null)}
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [666]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_ne
                                      left: {(0)}
                                      right: 
                                        {
                                          (braced_var_sub
                                            token: 
                                              (Token
                                                id: Id.VSub_Name
                                                val: svn_upstream
                                                span_id: 710
                                              )
                                            prefix_op: (Id.VSub_Pound)
                                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                          )
                                        }
                                    )
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:717)
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:svn_upstream)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        token: (Token id:Id.VSub_Name val:svn_upstream span_id:724)
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Minus
                                                left: 
                                                  (arith_expr.ArithWord
                                                    w: 
                                                      {
                                                        (braced_var_sub
                                                          token: 
                                                            (Token
                                                              id: Id.VSub_Name
                                                              val: svn_upstream
                                                              span_id: 728
                                                            )
                                                          prefix_op: (Id.VSub_Pound)
                                                          bracket_op: 
                                                            (bracket_op.WholeArray
                                                              op_id: Id.Lit_At
                                                            )
                                                        )
                                                      }
                                                  )
                                                right: (arith_expr.ArithWord w:{(Id.Lit_Digits 2)})
                                              )
                                          )
                                      )
                                    }
                                  spids: [722]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:svn_upstream)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        token: (Token id:Id.VSub_Name val:svn_upstream span_id:743)
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op_id: Id.VOp1_Percent
                                            arg_word: {('@*')}
                                          )
                                      )
                                    }
                                  spids: [741]
                                )
                              ]
                            )
                            (C {(local)} 
                              {(Id.Lit_VarLike 'n_stop=') 
                                (DQ 
                                  (braced_var_sub
                                    token: (Token id:Id.VSub_Name val:svn_remote span_id:755)
                                    prefix_op: (Id.VSub_Pound)
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  )
                                )
                              }
                            )
                            (command.ForExpr
                              init: 
                                (arith_expr.BinaryAssign
                                  op_id: Id.Arith_Equal
                                  left: (sh_lhs_expr.Name name:n)
                                  right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                )
                              cond: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_LessEqual
                                  left: 
                                    (arith_expr.VarRef
                                      token: (Token id:Id.Lit_ArithVarLike val:n span_id:771)
                                    )
                                  right: 
                                    (arith_expr.VarRef
                                      token: (Token id:Id.Lit_ArithVarLike val:n_stop span_id:775)
                                    )
                                )
                              update: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Node_PostDPlus
                                  child: (sh_lhs_expr.Name name:n)
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:svn_upstream)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (braced_var_sub
                                                token: 
                                                  (Token
                                                    id: Id.VSub_Name
                                                    val: svn_upstream
                                                    span_id: 789
                                                  )
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op_id: Id.VOp1_Pound
                                                    arg_word: 
                                                      {
                                                        (braced_var_sub
                                                          token: 
                                                            (Token
                                                              id: Id.VSub_Name
                                                              val: svn_remote
                                                              span_id: 792
                                                            )
                                                          bracket_op: 
                                                            (bracket_op.ArrayIndex
                                                              expr: 
                                                                (arith_expr.ArithWord
                                                                  w: {($ Id.VSub_DollarName '$n')}
                                                                )
                                                            )
                                                        )
                                                      }
                                                  )
                                              )
                                            }
                                          spids: [787]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_z
                                              child: {(DQ ($ Id.VSub_DollarName '$svn_upstream'))}
                                            )
                                        )
                                      terminator: (Token id:Id.Op_Semi val:';' span_id:815)
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:upstream)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (braced_var_sub
                                                token: 
                                                  (Token
                                                    id: Id.VSub_Name
                                                    val: GIT_SVN_ID
                                                    span_id: 826
                                                  )
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op_id: Id.VTest_ColonHyphen
                                                    arg_word: {(git-svn)}
                                                  )
                                              )
                                            }
                                          spids: [824]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [804 817]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:upstream)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (braced_var_sub
                                            token: 
                                              (Token
                                                id: Id.VSub_Name
                                                val: svn_upstream
                                                span_id: 837
                                              )
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op_id: Id.VOp1_Pound
                                                arg_word: {(Id.Lit_Slash /)}
                                              )
                                          )
                                        }
                                      spids: [835]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [700 719]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobEqual
                                      left: {(DQ ('svn+git'))}
                                      right: {(DQ ($ Id.VSub_DollarName '$upstream'))}
                                    )
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:861)
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:upstream)
                                  op: assign_op.Equal
                                  rhs: {(DQ ('@{upstream}'))}
                                  spids: [866]
                                )
                              ]
                            )
                          ]
                          spids: [846 863]
                        )
                      ]
                    )
                  ]
                  spids: [646 648 875 -1]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_z
                              child: {(DQ ($ Id.VSub_DollarName '$legacy'))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:897)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:count)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:904)
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (command.Simple
                                          words: [
                                            {(git)}
                                            {(rev-list)}
                                            {(--count)}
                                            {(--left-right)}
                                            {(DQ ($ Id.VSub_DollarName '$upstream')) (...HEAD)}
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: (Token id:Id.Redir_Great val:'2>' span_id:920)
                                              fd: 2
                                              arg_word: {(/dev/null)}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                )
                              )
                            }
                          spids: [902]
                        )
                      ]
                    )
                  ]
                  spids: [886 899]
                )
              ]
              else_action: [
                (C {(local)} {(commits)})
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:commits)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:942)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (command.Simple
                                              words: [
                                                {(git)}
                                                {(rev-list)}
                                                {(--left-right)}
                                                {(DQ ($ Id.VSub_DollarName '$upstream')) (...HEAD)}
                                              ]
                                              redirects: [
                                                (redir.Redir
                                                  op: (Token id:Id.Redir_Great val:'2>' span_id:954)
                                                  fd: 2
                                                  arg_word: {(/dev/null)}
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                  )
                                }
                              spids: [940]
                            )
                          ]
                        )
                      ]
                      action: [
                        (C {(local)} {(commit)} {(Id.Lit_VarLike 'behind=') (0)} 
                          {(Id.Lit_VarLike 'ahead=') (0)}
                        )
                        (command.ForEach
                          iter_name: commit
                          iter_words: [{($ Id.VSub_DollarName '$commits')}]
                          do_arg_iter: F
                          body: 
                            (command.DoGroup
                              children: [
                                (command.Case
                                  to_match: {(DQ ($ Id.VSub_DollarName '$commit'))}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(DQ ('<')) (Id.Lit_Star '*')}]
                                      action: [
                                        (command.DParen
                                          child: 
                                            (arith_expr.UnaryAssign
                                              op_id: Id.Node_PostDPlus
                                              child: (sh_lhs_expr.Name name:behind)
                                            )
                                        )
                                      ]
                                      spids: [995 999 1007 -1]
                                    )
                                    (case_arm
                                      pat_list: [{(Id.Lit_Star '*')}]
                                      action: [
                                        (command.DParen
                                          child: 
                                            (arith_expr.UnaryAssign
                                              op_id: Id.Node_PostDPlus
                                              child: (sh_lhs_expr.Name name:ahead)
                                            )
                                        )
                                      ]
                                      spids: [1010 1011 1019 -1]
                                    )
                                  ]
                                )
                              ]
                            )
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:count)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$behind') ('\t') 
                                    ($ Id.VSub_DollarName '$ahead')
                                  )
                                }
                              spids: [1028]
                            )
                          ]
                        )
                      ]
                      spids: [938 960]
                    )
                  ]
                  else_action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:count)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                          spids: [1039]
                        )
                      ]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_z
                              child: {(DQ ($ Id.VSub_DollarName '$verbose'))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1066)
                    )
                  ]
                  action: [
                    (command.Case
                      to_match: {(DQ ($ Id.VSub_DollarName '$count'))}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ )}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:p)
                                  op: assign_op.Equal
                                  rhs: {(DQ )}
                                  spids: [1088]
                                )
                              ]
                            )
                          ]
                          spids: [1080 1082 1092 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ ('0\t0'))}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:p)
                                  op: assign_op.Equal
                                  rhs: {(DQ ('='))}
                                  spids: [1104]
                                )
                              ]
                            )
                          ]
                          spids: [1095 1098 1109 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ ('0\t')) (Id.Lit_Star '*')}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:p)
                                  op: assign_op.Equal
                                  rhs: {(DQ ('>'))}
                                  spids: [1122]
                                )
                              ]
                            )
                          ]
                          spids: [1112 1116 1127 -1]
                        )
                        (case_arm
                          pat_list: [{(Id.Lit_Star '*') (DQ ('\t0'))}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:p)
                                  op: assign_op.Equal
                                  rhs: {(DQ ('<'))}
                                  spids: [1140]
                                )
                              ]
                            )
                          ]
                          spids: [1130 1134 1145 -1]
                        )
                        (case_arm
                          pat_list: [{(Id.Lit_Star '*')}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:p)
                                  op: assign_op.Equal
                                  rhs: {(DQ ('<>'))}
                                  spids: [1155]
                                )
                              ]
                            )
                          ]
                          spids: [1148 1149 1160 -1]
                        )
                      ]
                    )
                  ]
                  spids: [1055 1068]
                )
              ]
              else_action: [
                (command.Case
                  to_match: {(DQ ($ Id.VSub_DollarName '$count'))}
                  arms: [
                    (case_arm
                      pat_list: [{(DQ )}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:p)
                              op: assign_op.Equal
                              rhs: {(DQ )}
                              spids: [1186]
                            )
                          ]
                        )
                      ]
                      spids: [1178 1180 1190 -1]
                    )
                    (case_arm
                      pat_list: [{(DQ ('0\t0'))}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:p)
                              op: assign_op.Equal
                              rhs: {(DQ (' u='))}
                              spids: [1202]
                            )
                          ]
                        )
                      ]
                      spids: [1193 1196 1207 -1]
                    )
                    (case_arm
                      pat_list: [{(DQ ('0\t')) (Id.Lit_Star '*')}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:p)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ (' u+') 
                                    (braced_var_sub
                                      token: (Token id:Id.VSub_Name val:count span_id:1224)
                                      suffix_op: 
                                        (suffix_op.Unary
                                          op_id: Id.VOp1_Pound
                                          arg_word: {('0\t')}
                                        )
                                    )
                                  )
                                }
                              spids: [1220]
                            )
                          ]
                        )
                      ]
                      spids: [1210 1214 1230 -1]
                    )
                    (case_arm
                      pat_list: [{(Id.Lit_Star '*') (DQ ('\t0'))}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:p)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ (' u-') 
                                    (braced_var_sub
                                      token: (Token id:Id.VSub_Name val:count span_id:1247)
                                      suffix_op: 
                                        (suffix_op.Unary
                                          op_id: Id.VOp1_Percent
                                          arg_word: {('\t0')}
                                        )
                                    )
                                  )
                                }
                              spids: [1243]
                            )
                          ]
                        )
                      ]
                      spids: [1233 1237 1253 -1]
                    )
                    (case_arm
                      pat_list: [{(Id.Lit_Star '*')}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:p)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ (' u+') 
                                    (braced_var_sub
                                      token: (Token id:Id.VSub_Name val:count span_id:1267)
                                      suffix_op: 
                                        (suffix_op.Unary
                                          op_id: Id.VOp1_Pound
                                          arg_word: {('*\t')}
                                        )
                                    ) (-) 
                                    (braced_var_sub
                                      token: (Token id:Id.VSub_Name val:count span_id:1273)
                                      suffix_op: 
                                        (suffix_op.Unary
                                          op_id: Id.VOp1_Percent
                                          arg_word: {('\t*')}
                                        )
                                    )
                                  )
                                }
                              spids: [1263]
                            )
                          ]
                        )
                      ]
                      spids: [1256 1257 1279 -1]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {(DQ ($ Id.VSub_DollarName '$count'))}
                                    )
                                  right: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {(DQ ($ Id.VSub_DollarName '$name'))}
                                    )
                                )
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:1304)
                        )
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:__git_ps1_upstream_name)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1310)
                                    command_list: 
                                      (command.CommandList
                                        children: [
                                          (command.Simple
                                            words: [
                                              {(git)}
                                              {(rev-parse)}
                                              {(--abbrev-ref)}
                                              {(DQ ($ Id.VSub_DollarName '$upstream'))}
                                            ]
                                            redirects: [
                                              (redir.Redir
                                                op: (Token id:Id.Redir_Great val:'2>' span_id:1323)
                                                fd: 2
                                                arg_word: {(/dev/null)}
                                              )
                                            ]
                                          )
                                        ]
                                      )
                                  )
                                }
                              spids: [1309]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$pcmode')} 
                                          {(Id.Lit_Equals '=')} {(yes)} {(Id.Lit_RBracket ']')}
                                        )
                                        (C {(Id.Lit_LBracket '[')} 
                                          {($ Id.VSub_DollarName '$ps1_expanded')} {(Id.Lit_Equals '=')} {(yes)} {(Id.Lit_RBracket ']')}
                                        )
                                      ]
                                    )
                                  terminator: (Token id:Id.Op_Semi val:';' span_id:1351)
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:p)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$p') (' ') 
                                            (word_part.EscapedLiteral
                                              token: 
                                                (Token
                                                  id: Id.Lit_EscapedChar
                                                  val: '\\$'
                                                  span_id: 1360
                                                )
                                            ) ('{__git_ps1_upstream_name}')
                                          )
                                        }
                                      spids: [1356]
                                    )
                                  ]
                                )
                              ]
                              spids: [1328 1353]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:p)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$p') (' ') 
                                        (${ Id.VSub_Name __git_ps1_upstream_name)
                                      )
                                    }
                                  spids: [1368]
                                )
                              ]
                            )
                            (C {(unset)} {(__git_ps1_upstream_name)})
                          ]
                        )
                      ]
                      spids: [1285 1306]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: __git_ps1_colorize_gitstring
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: 
                                {
                                  (braced_var_sub
                                    token: (Token id:Id.VSub_Name val:ZSH_VERSION span_id:1427)
                                    suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{})
                                  )
                                }
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1432)
                    )
                  ]
                  action: [
                    (C {(local)} 
                      {(Id.Lit_VarLike 'c_red=') 
                        (SQ (Token id:Id.Lit_Chars val:'%F{red}' span_id:1441))
                      }
                    )
                    (C {(local)} 
                      {(Id.Lit_VarLike 'c_green=') 
                        (SQ (Token id:Id.Lit_Chars val:'%F{green}' span_id:1449))
                      }
                    )
                    (C {(local)} 
                      {(Id.Lit_VarLike 'c_lblue=') 
                        (SQ (Token id:Id.Lit_Chars val:'%F{blue}' span_id:1457))
                      }
                    )
                    (C {(local)} 
                      {(Id.Lit_VarLike 'c_clear=') (SQ (Token id:Id.Lit_Chars val:'%f' span_id:1465))}
                    )
                  ]
                  spids: [1420 1434]
                )
              ]
              else_action: [
                (C {(local)} 
                  {(Id.Lit_VarLike 'c_red=') 
                    (SQ (Token id:Id.Lit_Chars val:'\\[\\e[31m\\]' span_id:1484))
                  }
                )
                (C {(local)} 
                  {(Id.Lit_VarLike 'c_green=') 
                    (SQ (Token id:Id.Lit_Chars val:'\\[\\e[32m\\]' span_id:1492))
                  }
                )
                (C {(local)} 
                  {(Id.Lit_VarLike 'c_lblue=') 
                    (SQ (Token id:Id.Lit_Chars val:'\\[\\e[1;34m\\]' span_id:1500))
                  }
                )
                (C {(local)} 
                  {(Id.Lit_VarLike 'c_clear=') 
                    (SQ (Token id:Id.Lit_Chars val:'\\[\\e[0m\\]' span_id:1508))
                  }
                )
              ]
            )
            (C {(local)} {(Id.Lit_VarLike 'bad_color=') ($ Id.VSub_DollarName '$c_red')})
            (C {(local)} {(Id.Lit_VarLike 'ok_color=') ($ Id.VSub_DollarName '$c_green')})
            (C {(local)} {(Id.Lit_VarLike 'flags_color=') (DQ ($ Id.VSub_DollarName '$c_lblue'))})
            (C {(local)} {(Id.Lit_VarLike 'branch_color=') (DQ )})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$detached')} 
                          {(Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1554)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:branch_color)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$ok_color'))}
                          spids: [1559]
                        )
                      ]
                    )
                  ]
                  spids: [1543 1556]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:branch_color)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName '$bad_color'))}
                      spids: [1568]
                    )
                  ]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:c)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$branch_color') ($ Id.VSub_DollarName '$c'))}
                  spids: [1577]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:z)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$c_clear') ($ Id.VSub_DollarName '$z'))}
                  spids: [1585]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$w'))} 
                          {(Id.Lit_Equals '=')} {(DQ ('*'))} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1607)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:w)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$bad_color') ($ Id.VSub_DollarName '$w'))}
                          spids: [1612]
                        )
                      ]
                    )
                  ]
                  spids: [1592 1609]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$i'))} 
                          {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1633)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:i)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$ok_color') ($ Id.VSub_DollarName '$i'))}
                          spids: [1638]
                        )
                      ]
                    )
                  ]
                  spids: [1622 1635]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$s'))} 
                          {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1659)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:s)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$flags_color') ($ Id.VSub_DollarName '$s'))}
                          spids: [1664]
                        )
                      ]
                    )
                  ]
                  spids: [1648 1661]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$u'))} 
                          {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1685)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:u)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$bad_color') ($ Id.VSub_DollarName '$u'))}
                          spids: [1690]
                        )
                      ]
                    )
                  ]
                  spids: [1674 1687]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:r)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$c_clear') ($ Id.VSub_DollarName '$r'))}
                  spids: [1700]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: __git_eread
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Id.Lit_VarLike 'f=') (DQ ($ Id.VSub_Number '$1'))})
            (C {(shift)})
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {(test)} {(-r)} {(DQ ($ Id.VSub_DollarName '$f'))})
                (command.Simple
                  words: [{(read)} {(DQ ($ Id.VSub_At '$@'))}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Less val:'<' span_id:1744)
                      fd: -1
                      arg_word: {(DQ ($ Id.VSub_DollarName '$f'))}
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: __git_ps1
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Id.Lit_VarLike 'exit=') ($ Id.VSub_QMark '$?')})
            (C {(local)} {(Id.Lit_VarLike 'pcmode=') (no)})
            (C {(local)} {(Id.Lit_VarLike 'detached=') (no)})
            (C {(local)} 
              {(Id.Lit_VarLike 'ps1pc_start=') 
                (SQ (Token id:Id.Lit_Chars val:'\\u@\\h:\\w ' span_id:1819))
              }
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'ps1pc_end=') (SQ (Token id:Id.Lit_Chars val:'\\$ ' span_id:1827))}
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'printf_format=') (SQ (Token id:Id.Lit_Chars val:' (%s)' span_id:1835))}
            )
            (command.Case
              to_match: {(DQ ($ Id.VSub_Pound '$#'))}
              arms: [
                (case_arm
                  pat_list: [{(2)} {(3)}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:pcmode)
                          op: assign_op.Equal
                          rhs: {(yes)}
                          spids: [1854]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ps1pc_start)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_Number '$1'))}
                          spids: [1858]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ps1pc_end)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_Number '$2'))}
                          spids: [1864]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:printf_format)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Number val:3 span_id:1873)
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {($ Id.VSub_DollarName '$printf_format')}
                                    )
                                )
                              )
                            }
                          spids: [1870]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:PS1)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$ps1pc_start') 
                                ($ Id.VSub_DollarName '$ps1pc_end')
                              )
                            }
                          spids: [1892]
                        )
                      ]
                    )
                  ]
                  spids: [1849 1852 1899 -1]
                )
                (case_arm
                  pat_list: [{(0)} {(1)}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:printf_format)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Number val:1 span_id:1910)
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {($ Id.VSub_DollarName '$printf_format')}
                                    )
                                )
                              )
                            }
                          spids: [1907]
                        )
                      ]
                    )
                  ]
                  spids: [1902 1905 1917 -1]
                )
                (case_arm
                  pat_list: [{(Id.Lit_Star '*')}]
                  action: [
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:1923)
                      arg_word: {($ Id.VSub_DollarName '$exit')}
                    )
                  ]
                  spids: [1920 1921 1928 -1]
                )
              ]
            )
            (C {(local)} {(Id.Lit_VarLike 'ps1_expanded=') (yes)})
            (command.AndOr
              ops: [Id.Op_DPipe Id.Op_DPipe]
              children: [
                (C {(Id.Lit_LBracket '[')} {(-z)} 
                  {
                    (DQ 
                      (braced_var_sub
                        token: (Token id:Id.VSub_Name val:ZSH_VERSION span_id:2079)
                        suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty))
                      )
                    )
                  } {(Id.Lit_RBracket ']')}
                )
                (command.DBracket
                  expr: (bool_expr.Unary op_id:Id.BoolUnary_o child:{(PROMPT_SUBST)})
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:ps1_expanded)
                      op: assign_op.Equal
                      rhs: {(no)}
                      spids: [2098]
                    )
                  ]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe Id.Op_DPipe]
              children: [
                (C {(Id.Lit_LBracket '[')} {(-z)} 
                  {
                    (DQ 
                      (braced_var_sub
                        token: (Token id:Id.VSub_Name val:BASH_VERSION span_id:2108)
                        suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty))
                      )
                    )
                  } {(Id.Lit_RBracket ']')}
                )
                (C {(shopt)} {(-q)} {(promptvars)})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:ps1_expanded)
                      op: assign_op.Equal
                      rhs: {(no)}
                      spids: [2125]
                    )
                  ]
                )
              ]
            )
            (C {(local)} {(repo_info)} {(rev_parse_exit_code)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:repo_info)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2139)
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Simple
                                  words: [
                                    {(git)}
                                    {(rev-parse)}
                                    {(--git-dir)}
                                    {(--is-inside-git-dir)}
                                    {(--is-bare-repository)}
                                    {(--is-inside-work-tree)}
                                    {(--short)}
                                    {(HEAD)}
                                  ]
                                  redirects: [
                                    (redir.Redir
                                      op: (Token id:Id.Redir_Great val:'2>' span_id:2160)
                                      fd: 2
                                      arg_word: {(/dev/null)}
                                    )
                                  ]
                                )
                              ]
                            )
                        )
                      )
                    }
                  spids: [2137]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:rev_parse_exit_code)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_QMark '$?'))}
                  spids: [2166]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$repo_info'))} 
                          {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2184)
                    )
                  ]
                  action: [
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:2189)
                      arg_word: {($ Id.VSub_DollarName '$exit')}
                    )
                  ]
                  spids: [2173 2186]
                )
              ]
            )
            (C {(local)} {(Id.Lit_VarLike 'short_sha=') (DQ )})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$rev_parse_exit_code'))} 
                          {(Id.Lit_Equals '=')} {(DQ (0))} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2220)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:short_sha)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:repo_info span_id:2228)
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VOp1_DPound
                                      arg_word: 
                                        {('*') 
                                          (single_quoted
                                            left: 
                                              (Token
                                                id: Id.Left_SingleQuoteC
                                                val: "$'"
                                                span_id: 2231
                                              )
                                            tokens: [
                                              (Token
                                                id: Id.Char_OneChar
                                                val: '\\n'
                                                span_id: 2232
                                              )
                                            ]
                                          )
                                        }
                                    )
                                )
                              )
                            }
                          spids: [2225]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:repo_info)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:repo_info span_id:2241)
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VOp1_Percent
                                      arg_word: 
                                        {
                                          (single_quoted
                                            left: 
                                              (Token
                                                id: Id.Left_SingleQuoteC
                                                val: "$'"
                                                span_id: 2243
                                              )
                                            tokens: [
                                              (Token
                                                id: Id.Char_OneChar
                                                val: '\\n'
                                                span_id: 2244
                                              )
                                            ]
                                          ) ('*')
                                        }
                                    )
                                )
                              )
                            }
                          spids: [2238]
                        )
                      ]
                    )
                  ]
                  spids: [2205 2222]
                )
              ]
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'inside_worktree=') 
                (DQ 
                  (braced_var_sub
                    token: (Token id:Id.VSub_Name val:repo_info span_id:2259)
                    suffix_op: 
                      (suffix_op.Unary
                        op_id: Id.VOp1_DPound
                        arg_word: 
                          {('*') 
                            (single_quoted
                              left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:2262)
                              tokens: [(Token id:Id.Char_OneChar val:'\\n' span_id:2263)]
                            )
                          }
                      )
                  )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:repo_info)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (braced_var_sub
                          token: (Token id:Id.VSub_Name val:repo_info span_id:2272)
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VOp1_Percent
                              arg_word: 
                                {
                                  (single_quoted
                                    left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:2274)
                                    tokens: [(Token id:Id.Char_OneChar val:'\\n' span_id:2275)]
                                  ) ('*')
                                }
                            )
                        )
                      )
                    }
                  spids: [2269]
                )
              ]
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'bare_repo=') 
                (DQ 
                  (braced_var_sub
                    token: (Token id:Id.VSub_Name val:repo_info span_id:2287)
                    suffix_op: 
                      (suffix_op.Unary
                        op_id: Id.VOp1_DPound
                        arg_word: 
                          {('*') 
                            (single_quoted
                              left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:2290)
                              tokens: [(Token id:Id.Char_OneChar val:'\\n' span_id:2291)]
                            )
                          }
                      )
                  )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:repo_info)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (braced_var_sub
                          token: (Token id:Id.VSub_Name val:repo_info span_id:2300)
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VOp1_Percent
                              arg_word: 
                                {
                                  (single_quoted
                                    left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:2302)
                                    tokens: [(Token id:Id.Char_OneChar val:'\\n' span_id:2303)]
                                  ) ('*')
                                }
                            )
                        )
                      )
                    }
                  spids: [2297]
                )
              ]
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'inside_gitdir=') 
                (DQ 
                  (braced_var_sub
                    token: (Token id:Id.VSub_Name val:repo_info span_id:2315)
                    suffix_op: 
                      (suffix_op.Unary
                        op_id: Id.VOp1_DPound
                        arg_word: 
                          {('*') 
                            (single_quoted
                              left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:2318)
                              tokens: [(Token id:Id.Char_OneChar val:'\\n' span_id:2319)]
                            )
                          }
                      )
                  )
                )
              }
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'g=') 
                (DQ 
                  (braced_var_sub
                    token: (Token id:Id.VSub_Name val:repo_info span_id:2330)
                    suffix_op: 
                      (suffix_op.Unary
                        op_id: Id.VOp1_Percent
                        arg_word: 
                          {
                            (single_quoted
                              left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:2332)
                              tokens: [(Token id:Id.Char_OneChar val:'\\n' span_id:2333)]
                            ) ('*')
                          }
                      )
                  )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
                      children: [
                        (C {(Id.Lit_LBracket '[')} {(DQ (true))} {(Id.Lit_Equals '=')} 
                          {(DQ ($ Id.VSub_DollarName '$inside_worktree'))} {(Id.Lit_RBracket ']')}
                        )
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: 
                                  (Token
                                    id: Id.VSub_Name
                                    val: GIT_PS1_HIDE_IF_PWD_IGNORED
                                    span_id: 2366
                                  )
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                        (C {(Id.Lit_LBracket '[')} 
                          {
                            (DQ 
                              (command_sub
                                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2379)
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(git)} {(config)} {(--bool)} {(bash.hideIfPwdIgnored)})
                                    ]
                                  )
                              )
                            )
                          } {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ (false))} {(Id.Lit_RBracket ']')}
                        )
                        (C {(git)} {(check-ignore)} {(-q)} {(.)})
                      ]
                    )
                  ]
                  action: [
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:2414)
                      arg_word: {($ Id.VSub_DollarName '$exit')}
                    )
                  ]
                  spids: [2341 2411]
                )
              ]
            )
            (C {(local)} {(Id.Lit_VarLike 'r=') (DQ )})
            (C {(local)} {(Id.Lit_VarLike 'b=') (DQ )})
            (C {(local)} {(Id.Lit_VarLike 'step=') (DQ )})
            (C {(local)} {(Id.Lit_VarLike 'total=') (DQ )})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-d)} 
                          {(DQ ($ Id.VSub_DollarName '$g') (/rebase-merge))} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2463)
                    )
                  ]
                  action: [
                    (C {(__git_eread)} {(DQ ($ Id.VSub_DollarName '$g') (/rebase-merge/head-name))} 
                      {(b)}
                    )
                    (C {(__git_eread)} {(DQ ($ Id.VSub_DollarName '$g') (/rebase-merge/msgnum))} 
                      {(step)}
                    )
                    (C {(__git_eread)} {(DQ ($ Id.VSub_DollarName '$g') (/rebase-merge/end))} {(total)})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-f)} 
                                  {(DQ ($ Id.VSub_DollarName '$g') (/rebase-merge/interactive))} {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:2510)
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:r)
                                  op: assign_op.Equal
                                  rhs: {(DQ ('|REBASE-i'))}
                                  spids: [2515]
                                )
                              ]
                            )
                          ]
                          spids: [2498 2512]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:r)
                              op: assign_op.Equal
                              rhs: {(DQ ('|REBASE-m'))}
                              spids: [2524]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [2451 2465]
                )
              ]
              else_action: [
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Id.Lit_LBracket '[')} {(-d)} 
                              {(DQ ($ Id.VSub_DollarName '$g') (/rebase-apply))} {(Id.Lit_RBracket ']')}
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:2548)
                        )
                      ]
                      action: [
                        (C {(__git_eread)} {(DQ ($ Id.VSub_DollarName '$g') (/rebase-apply/next))} 
                          {(step)}
                        )
                        (C {(__git_eread)} {(DQ ($ Id.VSub_DollarName '$g') (/rebase-apply/last))} 
                          {(total)}
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (C {(Id.Lit_LBracket '[')} {(-f)} 
                                      {(DQ ($ Id.VSub_DollarName '$g') (/rebase-apply/rebasing))} {(Id.Lit_RBracket ']')}
                                    )
                                  terminator: (Token id:Id.Op_Semi val:';' span_id:2585)
                                )
                              ]
                              action: [
                                (C {(__git_eread)} 
                                  {(DQ ($ Id.VSub_DollarName '$g') (/rebase-apply/head-name))} {(b)}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:r)
                                      op: assign_op.Equal
                                      rhs: {(DQ ('|REBASE'))}
                                      spids: [2600]
                                    )
                                  ]
                                )
                              ]
                              spids: [2573 2587]
                            )
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (C {(Id.Lit_LBracket '[')} {(-f)} 
                                      {(DQ ($ Id.VSub_DollarName '$g') (/rebase-apply/applying))} {(Id.Lit_RBracket ']')}
                                    )
                                  terminator: (Token id:Id.Op_Semi val:';' span_id:2618)
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:r)
                                      op: assign_op.Equal
                                      rhs: {(DQ ('|AM'))}
                                      spids: [2623]
                                    )
                                  ]
                                )
                              ]
                              spids: [2606 2620]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:r)
                                  op: assign_op.Equal
                                  rhs: {(DQ ('|AM/REBASE'))}
                                  spids: [2632]
                                )
                              ]
                            )
                          ]
                        )
                      ]
                      spids: [2536 2550]
                    )
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Id.Lit_LBracket '[')} {(-f)} 
                              {(DQ ($ Id.VSub_DollarName '$g') (/MERGE_HEAD))} {(Id.Lit_RBracket ']')}
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:2653)
                        )
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:r)
                              op: assign_op.Equal
                              rhs: {(DQ ('|MERGING'))}
                              spids: [2658]
                            )
                          ]
                        )
                      ]
                      spids: [2641 2655]
                    )
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Id.Lit_LBracket '[')} {(-f)} 
                              {(DQ ($ Id.VSub_DollarName '$g') (/CHERRY_PICK_HEAD))} {(Id.Lit_RBracket ']')}
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:2676)
                        )
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:r)
                              op: assign_op.Equal
                              rhs: {(DQ ('|CHERRY-PICKING'))}
                              spids: [2681]
                            )
                          ]
                        )
                      ]
                      spids: [2664 2678]
                    )
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Id.Lit_LBracket '[')} {(-f)} 
                              {(DQ ($ Id.VSub_DollarName '$g') (/REVERT_HEAD))} {(Id.Lit_RBracket ']')}
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:2699)
                        )
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:r)
                              op: assign_op.Equal
                              rhs: {(DQ ('|REVERTING'))}
                              spids: [2704]
                            )
                          ]
                        )
                      ]
                      spids: [2687 2701]
                    )
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Id.Lit_LBracket '[')} {(-f)} 
                              {(DQ ($ Id.VSub_DollarName '$g') (/BISECT_LOG))} {(Id.Lit_RBracket ']')}
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:2722)
                        )
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:r)
                              op: assign_op.Equal
                              rhs: {(DQ ('|BISECTING'))}
                              spids: [2727]
                            )
                          ]
                        )
                      ]
                      spids: [2710 2724]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$b'))} 
                              {(Id.Lit_RBracket ']')}
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:2748)
                        )
                      ]
                      action: [(C {(Id.Lit_Other ':')})]
                      spids: [2737 2750]
                    )
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Id.Lit_LBracket '[')} {(-h)} {(DQ ($ Id.VSub_DollarName '$g') (/HEAD))} 
                              {(Id.Lit_RBracket ']')}
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:2768)
                        )
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:b)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: 
                                        (Token
                                          id: Id.Left_DollarParen
                                          val: '$('
                                          span_id: 2779
                                        )
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (command.Simple
                                              words: [{(git)} {(symbolic-ref)} {(HEAD)}]
                                              redirects: [
                                                (redir.Redir
                                                  op: (Token id:Id.Redir_Great val:'2>' span_id:2786)
                                                  fd: 2
                                                  arg_word: {(/dev/null)}
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                  )
                                }
                              spids: [2777]
                            )
                          ]
                        )
                      ]
                      spids: [2756 2770]
                    )
                  ]
                  else_action: [
                    (C {(local)} {(Id.Lit_VarLike 'head=') (DQ )})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.Pipeline
                                  children: [
                                    (C {(__git_eread)} {(DQ ($ Id.VSub_DollarName '$g') (/HEAD))} 
                                      {(head)}
                                    )
                                  ]
                                  negated: T
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:2814)
                            )
                          ]
                          action: [
                            (command.ControlFlow
                              token: (Token id:Id.ControlFlow_Return val:return span_id:2819)
                              arg_word: {($ Id.VSub_DollarName '$exit')}
                            )
                          ]
                          spids: [2802 2816]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:b)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:head span_id:2834)
                                  suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{('ref: ')})
                                )
                              )
                            }
                          spids: [2831]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$head'))} 
                                  {(Id.Lit_Equals '=')} {(DQ ($ Id.VSub_DollarName '$b'))} {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:2856)
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:detached)
                                  op: assign_op.Equal
                                  rhs: {(yes)}
                                  spids: [2861]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:b)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (command_sub
                                              left_token: 
                                                (Token
                                                  id: Id.Left_DollarParen
                                                  val: '$('
                                                  span_id: 2867
                                                )
                                              command_list: 
                                                (command.CommandList
                                                  children: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ 
                                                            (braced_var_sub
                                                              token: 
                                                                (Token
                                                                  id: Id.VSub_Name
                                                                  val: GIT_PS1_DESCRIBE_STYLE
                                                                  span_id: 2874
                                                                )
                                                              suffix_op: 
                                                                (suffix_op.Unary
                                                                  op_id: Id.VTest_Hyphen
                                                                  arg_word: (word.Empty)
                                                                )
                                                            )
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{(contains)}]
                                                          action: [
                                                            (C {(git)} {(describe)} {(--contains)} 
                                                              {(HEAD)}
                                                            )
                                                          ]
                                                          spids: [2882 2884 2895 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{(branch)}]
                                                          action: [
                                                            (C {(git)} {(describe)} {(--contains)} 
                                                              {(--all)} {(HEAD)}
                                                            )
                                                          ]
                                                          spids: [2898 2900 2913 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{(describe)}]
                                                          action: [(C {(git)} {(describe)} {(HEAD)})]
                                                          spids: [2916 2918 2927 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{(Id.Lit_Star '*')} {(default)}]
                                                          action: [
                                                            (C {(git)} {(describe)} {(--tags)} 
                                                              {(--exact-match)} {(HEAD)}
                                                            )
                                                          ]
                                                          spids: [2930 2936 2949 -1]
                                                        )
                                                      ]
                                                      redirects: [
                                                        (redir.Redir
                                                          op: 
                                                            (Token
                                                              id: Id.Redir_Great
                                                              val: '2>'
                                                              span_id: 2954
                                                            )
                                                          fd: 2
                                                          arg_word: {(/dev/null)}
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                          )
                                        }
                                      spids: [2865]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:b)
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName '$short_sha') (...))}
                                      spids: [2963]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:b)
                                  op: assign_op.Equal
                                  rhs: {(DQ ('(') ($ Id.VSub_DollarName '$b') (')'))}
                                  spids: [2970]
                                )
                              ]
                            )
                          ]
                          spids: [2841 2858]
                        )
                      ]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$step'))} 
                              {(Id.Lit_RBracket ']')}
                            )
                            (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$total'))} 
                              {(Id.Lit_RBracket ']')}
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:3011)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:r)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$r') (' ') ($ Id.VSub_DollarName '$step') (/) 
                                ($ Id.VSub_DollarName '$total')
                              )
                            }
                          spids: [3016]
                        )
                      ]
                    )
                  ]
                  spids: [2988 3013]
                )
              ]
            )
            (C {(local)} {(Id.Lit_VarLike 'w=') (DQ )})
            (C {(local)} {(Id.Lit_VarLike 'i=') (DQ )})
            (C {(local)} {(Id.Lit_VarLike 's=') (DQ )})
            (C {(local)} {(Id.Lit_VarLike 'u=') (DQ )})
            (C {(local)} {(Id.Lit_VarLike 'c=') (DQ )})
            (C {(local)} {(Id.Lit_VarLike 'p=') (DQ )})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(DQ (true))} {(Id.Lit_Equals '=')} 
                          {(DQ ($ Id.VSub_DollarName '$inside_gitdir'))} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:3088)
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(DQ (true))} {(Id.Lit_Equals '=')} 
                                  {(DQ ($ Id.VSub_DollarName '$bare_repo'))} {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:3108)
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:c)
                                  op: assign_op.Equal
                                  rhs: {(DQ ('BARE:'))}
                                  spids: [3113]
                                )
                              ]
                            )
                          ]
                          spids: [3093 3110]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:b)
                              op: assign_op.Equal
                              rhs: {(DQ ('GIT_DIR!'))}
                              spids: [3122]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [3073 3090]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(DQ (true))} {(Id.Lit_Equals '=')} 
                          {(DQ ($ Id.VSub_DollarName '$inside_worktree'))} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:3146)
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: GIT_PS1_SHOWDIRTYSTATE
                                            span_id: 3159
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                                (C {(Id.Lit_LBracket '[')} 
                                  {
                                    (DQ 
                                      (command_sub
                                        left_token: 
                                          (Token
                                            id: Id.Left_DollarParen
                                            val: '$('
                                            span_id: 3172
                                          )
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (C {(git)} {(config)} {(--bool)} {(bash.showDirtyState)})
                                            ]
                                          )
                                      )
                                    )
                                  } {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ (false))} {(Id.Lit_RBracket ']')}
                                )
                              ]
                            )
                          ]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {(git)} {(diff)} {(--no-ext-diff)} {(--quiet)})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:w)
                                      op: assign_op.Equal
                                      rhs: {(DQ ('*'))}
                                      spids: [3206]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {(git)} {(diff)} {(--no-ext-diff)} {(--cached)} {(--quiet)})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:i)
                                      op: assign_op.Equal
                                      rhs: {(DQ ('+'))}
                                      spids: [3224]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DAmp]
                                          children: [
                                            (C {(Id.Lit_LBracket '[')} {(-z)} 
                                              {(DQ ($ Id.VSub_DollarName '$short_sha'))} {(Id.Lit_RBracket ']')}
                                            )
                                            (C {(Id.Lit_LBracket '[')} {(-z)} 
                                              {(DQ ($ Id.VSub_DollarName '$i'))} {(Id.Lit_RBracket ']')}
                                            )
                                          ]
                                        )
                                      terminator: (Token id:Id.Op_Semi val:';' span_id:3253)
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:i)
                                          op: assign_op.Equal
                                          rhs: {(DQ ('#'))}
                                          spids: [3258]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [3230 3255]
                                )
                              ]
                            )
                          ]
                          spids: [3151 3193]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: GIT_PS1_SHOWSTASHSTATE
                                            span_id: 3278
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                                (command.Simple
                                  words: [{(git)} {(rev-parse)} {(--verify)} {(--quiet)} {(refs/stash)}]
                                  redirects: [
                                    (redir.Redir
                                      op: (Token id:Id.Redir_Great val:'>' span_id:3298)
                                      fd: -1
                                      arg_word: {(/dev/null)}
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:s)
                                  op: assign_op.Equal
                                  rhs: {(DQ (Id.Lit_Other '$'))}
                                  spids: [3305]
                                )
                              ]
                            )
                          ]
                          spids: [3270 3302]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.AndOr
                              ops: [Id.Op_DAmp Id.Op_DAmp]
                              children: [
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: GIT_PS1_SHOWUNTRACKEDFILES
                                            span_id: 3323
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                                (C {(Id.Lit_LBracket '[')} 
                                  {
                                    (DQ 
                                      (command_sub
                                        left_token: 
                                          (Token
                                            id: Id.Left_DollarParen
                                            val: '$('
                                            span_id: 3336
                                          )
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (C {(git)} {(config)} {(--bool)} 
                                                {(bash.showUntrackedFiles)}
                                              )
                                            ]
                                          )
                                      )
                                    )
                                  } {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ (false))} {(Id.Lit_RBracket ']')}
                                )
                                (command.Simple
                                  words: [
                                    {(git)}
                                    {(ls-files)}
                                    {(--others)}
                                    {(--exclude-standard)}
                                    {(--directory)}
                                    {(--no-empty-directory)}
                                    {(--error-unmatch)}
                                    {(--)}
                                    {(SQ (Token id:Id.Lit_Chars val:':/*' span_id:3376))}
                                  ]
                                  redirects: [
                                    (redir.Redir
                                      op: (Token id:Id.Redir_Great val:'>' span_id:3379)
                                      fd: -1
                                      arg_word: {(/dev/null)}
                                    )
                                    (redir.Redir
                                      op: (Token id:Id.Redir_Great val:'2>' span_id:3382)
                                      fd: 2
                                      arg_word: {(/dev/null)}
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:u)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ('%') 
                                        (braced_var_sub
                                          token: (Token id:Id.VSub_Name val:ZSH_VERSION span_id:3393)
                                          suffix_op: 
                                            (suffix_op.Unary
                                              op_id: Id.VTest_Plus
                                              arg_word: {(Id.Lit_Percent '%')}
                                            )
                                        )
                                      )
                                    }
                                  spids: [3389]
                                )
                              ]
                            )
                          ]
                          spids: [3315 3386]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: GIT_PS1_SHOWUPSTREAM
                                            span_id: 3412
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:3418)
                            )
                          ]
                          action: [(C {(__git_ps1_show_upstream)})]
                          spids: [3404 3420]
                        )
                      ]
                    )
                  ]
                  spids: [3131 3148]
                )
              ]
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'z=') 
                (DQ 
                  (braced_var_sub
                    token: (Token id:Id.VSub_Name val:GIT_PS1_STATESEPARATOR span_id:3438)
                    suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{(DQ (' '))})
                  )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$pcmode')} 
                              {(Id.Lit_Equals '=')} {(yes)} {(Id.Lit_RBracket ']')}
                            )
                            (C {(Id.Lit_LBracket '[')} {(-n)} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: 
                                      (Token
                                        id: Id.VSub_Name
                                        val: GIT_PS1_SHOWCOLORHINTS
                                        span_id: 3472
                                      )
                                    suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty))
                                  )
                                )
                              } {(Id.Lit_RBracket ']')}
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:3478)
                    )
                  ]
                  action: [(C {(__git_ps1_colorize_gitstring)})]
                  spids: [3452 3480]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:b)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: (Token id:Id.VSub_Name val:b span_id:3492)
                        suffix_op: 
                          (suffix_op.Unary
                            op_id: Id.VOp1_DPound
                            arg_word: {(refs) (Id.Lit_Slash /) (heads) (Id.Lit_Slash /)}
                          )
                      )
                    }
                  spids: [3490]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$pcmode')} 
                              {(Id.Lit_Equals '=')} {(yes)} {(Id.Lit_RBracket ']')}
                            )
                            (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$ps1_expanded')} 
                              {(Id.Lit_Equals '=')} {(yes)} {(Id.Lit_RBracket ']')}
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:3524)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:__git_ps1_branch_name)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$b')}
                          spids: [3529]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:b)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (word_part.EscapedLiteral
                                  token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:3535)
                                ) ('{__git_ps1_branch_name}')
                              )
                            }
                          spids: [3533]
                        )
                      ]
                    )
                  ]
                  spids: [3501 3526]
                )
              ]
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'f=') 
                (DQ ($ Id.VSub_DollarName '$w') ($ Id.VSub_DollarName '$i') ($ Id.VSub_DollarName '$s') 
                  ($ Id.VSub_DollarName '$u')
                )
              }
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'gitstring=') 
                (DQ ($ Id.VSub_DollarName '$c') ($ Id.VSub_DollarName '$b') 
                  (braced_var_sub
                    token: (Token id:Id.VSub_Name val:f span_id:3562)
                    suffix_op: 
                      (suffix_op.Unary
                        op_id: Id.VTest_ColonPlus
                        arg_word: {($ Id.VSub_DollarName '$z') ($ Id.VSub_DollarName '$f')}
                      )
                  ) ($ Id.VSub_DollarName '$r') ($ Id.VSub_DollarName '$p')
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$pcmode')} 
                          {(Id.Lit_Equals '=')} {(yes)} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:3584)
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: __git_printf_supports_v
                                            span_id: 3595
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(yes)} {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:3606)
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:gitstring)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: 
                                          (Token
                                            id: Id.Left_DollarParen
                                            val: '$('
                                            span_id: 3612
                                          )
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (C {(printf)} {(--)} 
                                                {(DQ ($ Id.VSub_DollarName '$printf_format'))} {(DQ ($ Id.VSub_DollarName '$gitstring'))}
                                              )
                                            ]
                                          )
                                      )
                                    }
                                  spids: [3611]
                                )
                              ]
                            )
                          ]
                          spids: [3589 3608]
                        )
                      ]
                      else_action: [
                        (C {(printf)} {(-v)} {(gitstring)} {(--)} 
                          {(DQ ($ Id.VSub_DollarName '$printf_format'))} {(DQ ($ Id.VSub_DollarName '$gitstring'))}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:PS1)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$ps1pc_start') 
                                ($ Id.VSub_DollarName '$gitstring') ($ Id.VSub_DollarName '$ps1pc_end')
                              )
                            }
                          spids: [3650]
                        )
                      ]
                    )
                  ]
                  spids: [3573 3586]
                )
              ]
              else_action: [
                (C {(printf)} {(--)} {(DQ ($ Id.VSub_DollarName '$printf_format'))} 
                  {(DQ ($ Id.VSub_DollarName '$gitstring'))}
                )
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Return val:return span_id:3678)
              arg_word: {($ Id.VSub_DollarName '$exit')}
            )
          ]
        )
    )
  ]
)