(CommandList
  children: [
    (C {(.)} {(git-sh-i18n)})
    (C {(unset)} {(CDPATH)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{(SQ <' \t\n'>)} spids:[47])]
      spids: [47]
    )
    (FuncDef
      name: git_broken_path_fix
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ (':') ($ VSub_Name '$PATH') (':'))}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '*') (Lit_Other ':') ($ VSub_Number '$1') (Lit_Other ':') 
                      (Lit_Other '*')
                    }
                  ]
                  action: [(C {(Lit_Other ':')} {(ok)})]
                  spids: [72 77 83 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PATH)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Assignment
                                        keyword: Assign_None
                                        pairs: [
                                          (assign_pair
                                            lhs: (LhsName name:SANE_TOOL_PATH)
                                            op: Equal
                                            rhs: {(DQ ($ VSub_Number '$1'))}
                                            spids: [94]
                                          )
                                        ]
                                        spids: [94]
                                      )
                                      (Assignment
                                        keyword: Assign_None
                                        pairs: [
                                          (assign_pair
                                            lhs: (LhsName name:IFS)
                                            op: Equal
                                            rhs: {(Lit_Other ':')}
                                            spids: [100]
                                          )
                                          (assign_pair
                                            lhs: (LhsName name:path)
                                            op: Equal
                                            rhs: {(EmptyPart)}
                                            spids: [103]
                                          )
                                          (assign_pair
                                            lhs: (LhsName name:sep)
                                            op: Equal
                                            rhs: {(EmptyPart)}
                                            spids: [105]
                                          )
                                        ]
                                        spids: [100]
                                      )
                                      (C {(set)} {(x)} {($ VSub_Name '$PATH')})
                                      (C {(shift)})
                                      (ForEach
                                        iter_name: elem
                                        do_arg_iter: T
                                        body: 
                                          (DoGroup
                                            children: [
                                              (Case
                                                to_match: 
                                                  {
                                                    (DQ ($ VSub_Name '$SANE_TOOL_PATH') (':') 
                                                      ($ VSub_Name '$elem')
                                                    )
                                                  }
                                                arms: [
                                                  (case_arm
                                                    pat_list: [
                                                      {(Lit_Other '?') (Lit_Other '*') 
                                                        (Lit_Other ':') (/bin)
                                                      }
                                                      {(Lit_Other '?') (Lit_Other '*') 
                                                        (Lit_Other ':') (/usr/bin)
                                                      }
                                                    ]
                                                    action: [
                                                      (Assignment
                                                        keyword: Assign_None
                                                        pairs: [
                                                          (assign_pair
                                                            lhs: (LhsName name:path)
                                                            op: Equal
                                                            rhs: 
                                                              {
                                                                (DQ ($ VSub_Name '$path') 
                                                                  ($ VSub_Name '$sep') ($ VSub_Name '$SANE_TOOL_PATH')
                                                                )
                                                              }
                                                            spids: [152]
                                                          )
                                                        ]
                                                        spids: [152]
                                                      )
                                                      (Assignment
                                                        keyword: Assign_None
                                                        pairs: [
                                                          (assign_pair
                                                            lhs: (LhsName name:sep)
                                                            op: Equal
                                                            rhs: {(Lit_Other ':')}
                                                            spids: [160]
                                                          )
                                                        ]
                                                        spids: [160]
                                                      )
                                                      (Assignment
                                                        keyword: Assign_None
                                                        pairs: [
                                                          (assign_pair
                                                            lhs: (LhsName name:SANE_TOOL_PATH)
                                                            op: Equal
                                                            rhs: {(EmptyPart)}
                                                            spids: [164]
                                                          )
                                                        ]
                                                        spids: [164]
                                                      )
                                                    ]
                                                    spids: [137 149 16777215 167]
                                                  )
                                                ]
                                                spids: [126 134 167]
                                              )
                                              (Assignment
                                                keyword: Assign_None
                                                pairs: [
                                                  (assign_pair
                                                    lhs: (LhsName name:path)
                                                    op: Equal
                                                    rhs: 
                                                      {
                                                        (DQ ($ VSub_Name '$path') ($ VSub_Name '$sep') 
                                                          ($ VSub_Name '$elem')
                                                        )
                                                      }
                                                    spids: [170]
                                                  )
                                                ]
                                                spids: [170]
                                              )
                                              (Assignment
                                                keyword: Assign_None
                                                pairs: [
                                                  (assign_pair
                                                    lhs: (LhsName name:sep)
                                                    op: Equal
                                                    rhs: {(Lit_Other ':')}
                                                    spids: [178]
                                                  )
                                                ]
                                                spids: [178]
                                              )
                                            ]
                                            spids: [123 182]
                                          )
                                        spids: [16777215 16777215]
                                      )
                                      (C {(echo)} {(DQ ($ VSub_Name '$path'))})
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [91 192]
                              )
                            }
                          spids: [90]
                        )
                      ]
                      spids: [90]
                    )
                  ]
                  spids: [86 87 195 16777215]
                )
              ]
              spids: [61 69 198]
            )
          ]
          spids: [58]
        )
      spids: [53 57]
    )
    (FuncDef
      name: die
      body: (BraceGroup children:[(C {(die_with_status)} {(1)} {(DQ ($ VSub_At '$@'))})] spids:[212])
      spids: [207 211]
    )
    (FuncDef
      name: die_with_status
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:status)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [234]
                )
              ]
              spids: [234]
            )
            (C {(shift)})
            (SimpleCommand
              words: [{(printf)} {(SQ <'%s\\n'>)} {(DQ ($ VSub_Star '$*'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[243])]
            )
            (ControlFlow
              token: <ControlFlow_Exit exit>
              arg_word: {(DQ ($ VSub_Name '$status'))}
            )
          ]
          spids: [231]
        )
      spids: [226 230]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:GIT_QUIET) op:Equal rhs:{(EmptyPart)} spids:[264])]
      spids: [264]
    )
    (FuncDef
      name: say
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$GIT_QUIET'))})]
                  action: [(C {(printf)} {(SQ <'%s\\n'>)} {(DQ ($ VSub_Star '$*'))})]
                  spids: [16777215 286]
                )
              ]
              spids: [16777215 300]
            )
          ]
          spids: [272]
        )
      spids: [267 271]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$OPTIONS_SPEC'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (FuncDef
              name: usage
              body: 
                (BraceGroup
                  children: [
                    (C {(DQ ($ VSub_Number '$0'))} {(-h)})
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [323]
                )
              spids: [319 322]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:parseopt_extra)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [342]
                )
              ]
              spids: [342]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$OPTIONS_KEEPDASHDASH'))} 
                  {(Lit_Other ']')}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:parseopt_extra)
                      op: Equal
                      rhs: {(DQ (--keep-dashdash))}
                      spids: [358]
                    )
                  ]
                  spids: [358]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$OPTIONS_STUCKLONG'))} {(Lit_Other ']')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:parseopt_extra)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name '$parseopt_extra') (' --stuck-long'))}
                      spids: [377]
                    )
                  ]
                  spids: [377]
                )
              ]
            )
            (C {(eval)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (AndOr
                            ops: [Op_DPipe]
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(DQ ($ VSub_Name '$OPTIONS_SPEC'))})
                                  (C {(git)} {(rev-parse)} {(--parseopt)} 
                                    {($ VSub_Name '$parseopt_extra')} {(--)} {(DQ ($ VSub_At '$@'))}
                                  )
                                ]
                                negated: F
                              )
                              (C {(echo)} {(ControlFlow_Exit exit)} {($ VSub_QMark '$?')})
                            ]
                          )
                        ]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [388 424]
                  )
                )
              }
            )
          ]
          spids: [16777215 316]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:dashless)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Pipeline
                            children: [
                              (C {(basename)} {(--)} {(DQ ($ VSub_Number '$0'))})
                              (C {(sed)} {(-e)} {(SQ <'s/-/ /'>)})
                            ]
                            negated: F
                          )
                        ]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [431 449]
                  )
                }
              spids: [430]
            )
          ]
          spids: [430]
        )
        (FuncDef
          name: usage
          body: 
            (BraceGroup
              children: [
                (C {(die)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(eval_gettext)} 
                                {
                                  (DQ ('usage: ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                    ('dashless ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (USAGE)
                                  )
                                }
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [462 472]
                      )
                    )
                  }
                )
              ]
              spids: [456]
            )
          spids: [452 455]
        )
        (If
          arms: [
            (if_arm
              cond: [(C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$LONG_USAGE'))} {(Lit_Other ']')})]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:LONG_USAGE)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(eval_gettext)} 
                                      {
                                        (DQ ('usage: ') 
                                          (EscapedLiteralPart
                                            token: <Lit_EscapedChar '\\$'>
                                          ) ('dashless ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (USAGE)
                                        )
                                      }
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [498 508]
                            )
                          )
                        }
                      spids: [496]
                    )
                  ]
                  spids: [496]
                )
              ]
              spids: [16777215 493]
            )
          ]
          else_action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:LONG_USAGE)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(eval_gettext)} 
                                  {
                                    (DQ ('usage: ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                      ('dashless ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('USAGE\n') ('\n') ($ VSub_Name '$LONG_USAGE')
                                    )
                                  }
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [517 529]
                        )
                      )
                    }
                  spids: [515]
                )
              ]
              spids: [515]
            )
          ]
          spids: [512 533]
        )
        (Case
          to_match: {(DQ ($ VSub_Number '$1'))}
          arms: [
            (case_arm
              pat_list: [{(-h)}]
              action: [
                (C {(echo)} {(DQ ($ VSub_Name '$LONG_USAGE'))})
                (ControlFlow token:<ControlFlow_Exit exit>)
              ]
              spids: [546 547 16777215 560]
            )
          ]
          spids: [537 543 560]
        )
      ]
      spids: [427 562]
    )
    (FuncDef
      name: set_reflog_action
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(-z)} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name GIT_REFLOG_ACTION>
                            suffix_op: (StringUnary op_id:VTest_ColonPlus arg_word:{(set)})
                            spids: [681 685]
                          )
                        )
                      } {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:GIT_REFLOG_ACTION)
                          op: Equal
                          rhs: {(DQ ($ VSub_Star '$*'))}
                          spids: [694]
                        )
                      ]
                      spids: [694]
                    )
                    (C {(export)} {(GIT_REFLOG_ACTION)})
                  ]
                  spids: [16777215 691]
                )
              ]
              spids: [16777215 705]
            )
          ]
          spids: [671]
        )
      spids: [667 670]
    )
    (FuncDef
      name: git_editor
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(test)} {(-z)} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name GIT_EDITOR>
                            suffix_op: (StringUnary op_id:VTest_ColonPlus arg_word:{(set)})
                            spids: [724 728]
                          )
                        )
                      }
                    )
                  ]
                  action: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:GIT_EDITOR)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [(C {(git)} {(var)} {(GIT_EDITOR)})]
                                        )
                                      left_token: <Left_CommandSub '$('>
                                      spids: [737 743]
                                    )
                                  )
                                }
                              spids: [735]
                            )
                          ]
                          spids: [735]
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {($ VSub_QMark '$?')}
                        )
                      ]
                    )
                  ]
                  spids: [16777215 732]
                )
              ]
              spids: [16777215 753]
            )
            (C {(eval)} {(DQ ($ VSub_Name '$GIT_EDITOR'))} {(SQ <'"$@"'>)})
          ]
          spids: [714]
        )
      spids: [710 713]
    )
    (FuncDef
      name: git_pager
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-t)} {(1)})]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:GIT_PAGER)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(git)} {(var)} {(GIT_PAGER)})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [790 796]
                              )
                            }
                          spids: [789]
                        )
                      ]
                      spids: [789]
                    )
                  ]
                  spids: [16777215 786]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:GIT_PAGER) op:Equal rhs:{(cat)} spids:[802])]
                  spids: [802]
                )
              ]
              spids: [799 806]
            )
            (ForEach
              iter_name: vardef
              iter_words: [
                {(Lit_Other '@') (Lit_Other '@') (PAGER_ENV) (Lit_Other '@') (Lit_Other '@')}
              ]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:var)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name vardef>
                                suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{('=*')})
                                spids: [826 830]
                              )
                            }
                          spids: [825]
                        )
                      ]
                      spids: [825]
                    )
                    (C {(eval)} 
                      {
                        (DQ (': ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                          (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{') ($ VSub_Name '$vardef') ('}') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' && export ') 
                          ($ VSub_Name '$var')
                        )
                      }
                    )
                  ]
                  spids: [822 848]
                )
              spids: [814 16777215]
            )
            (C {(eval)} {(DQ ($ VSub_Name '$GIT_PAGER'))} {(SQ <'"$@"'>)})
          ]
          spids: [774]
        )
      spids: [770 773]
    )
    (FuncDef
      name: sane_grep
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [
                {(grep)}
                {(Lit_Other '@') (Lit_Other '@') (SANE_TEXT_GREP) (Lit_Other '@') (Lit_Other '@')}
                {(DQ ($ VSub_At '$@'))}
              ]
              more_env: [
                (env_pair name:GREP_OPTIONS val:{(EmptyPart)} spids:[873])
                (env_pair name:LC_ALL val:{(C)} spids:[875])
              ]
            )
          ]
          spids: [870]
        )
      spids: [865 869]
    )
    (FuncDef
      name: sane_egrep
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [
                {(egrep)}
                {(Lit_Other '@') (Lit_Other '@') (SANE_TEXT_GREP) (Lit_Other '@') (Lit_Other '@')}
                {(DQ ($ VSub_At '$@'))}
              ]
              more_env: [
                (env_pair name:GREP_OPTIONS val:{(EmptyPart)} spids:[901])
                (env_pair name:LC_ALL val:{(C)} spids:[903])
              ]
            )
          ]
          spids: [898]
        )
      spids: [893 897]
    )
    (FuncDef
      name: is_bare_repository
      body: (BraceGroup children:[(C {(git)} {(rev-parse)} {(--is-bare-repository)})] spids:[926])
      spids: [921 925]
    )
    (FuncDef
      name: cd_to_toplevel
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp Op_DPipe]
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:cdup)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(git)} {(rev-parse)} {(--show-toplevel)})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [947 953]
                          )
                        }
                      spids: [946]
                    )
                  ]
                  spids: [946]
                )
                (C {(cd)} {(DQ ($ VSub_Name '$cdup'))})
                (BraceGroup
                  children: [
                    (SimpleCommand
                      words: [
                        {(gettextln)}
                        {
                          (DQ ('Cannot chdir to ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                            ('cdup, the toplevel of the working tree')
                          )
                        }
                      ]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[977])]
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [966]
                )
              ]
            )
          ]
          spids: [943]
        )
      spids: [938 942]
    )
    (FuncDef
      name: require_work_tree_exists
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(test)} 
                      {
                        (DQ (z) 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(git)} {(rev-parse)} {(--is-bare-repository)})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [1005 1011]
                          )
                        )
                      } {(KW_Bang '!') (Lit_Other '=')} {(zfalse)}
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:program_name)
                          op: Equal
                          rhs: {($ VSub_Number '$0')}
                          spids: [1023]
                        )
                      ]
                      spids: [1023]
                    )
                    (C {(die)} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (C {(gettext)} 
                                    {
                                      (DQ ('fatal: ') 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar '\\$'>
                                        ) ('program_name cannot be used without a working tree.')
                                      )
                                    }
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [1030 1038]
                          )
                        )
                      }
                    )
                  ]
                  spids: [16777215 1020]
                )
              ]
              spids: [16777215 1042]
            )
          ]
          spids: [996]
        )
      spids: [991 995]
    )
    (FuncDef
      name: require_work_tree
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [{(git)} {(rev-parse)} {(--is-inside-work-tree)}]
                                redirects: [
                                  (Redir
                                    op_id: Redir_Great
                                    fd: 2
                                    arg_word: {(/dev/null)}
                                    spids: [1065]
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1058 1067]
                      )
                    )
                  } {(Lit_Other '=')} {(true)}
                )
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:program_name)
                          op: Equal
                          rhs: {($ VSub_Number '$0')}
                          spids: [1079]
                        )
                      ]
                      spids: [1079]
                    )
                    (C {(die)} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (C {(gettext)} 
                                    {
                                      (DQ ('fatal: ') 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar '\\$'>
                                        ) ('program_name cannot be used without a working tree.')
                                      )
                                    }
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [1086 1094]
                          )
                        )
                      }
                    )
                  ]
                  spids: [1076]
                )
              ]
            )
          ]
          spids: [1052]
        )
      spids: [1047 1051]
    )
    (FuncDef
      name: require_clean_work_tree
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (SimpleCommand
                  words: [{(git)} {(rev-parse)} {(--verify)} {(HEAD)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [1119]
                    )
                  ]
                )
                (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
              ]
            )
            (C {(git)} {(update-index)} {(-q)} {(--ignore-submodules)} {(--refresh)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:err) op:Equal rhs:{(0)} spids:[1140])]
              spids: [1140]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Pipeline
                      children: [(C {(git)} {(diff-files)} {(--quiet)} {(--ignore-submodules)})]
                      negated: T
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:action)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [1161]
                        )
                      ]
                      spids: [1161]
                    )
                    (Case
                      to_match: {(DQ ($ VSub_Name '$action'))}
                      arms: [
                        (case_arm
                          pat_list: [{(rebase)}]
                          action: [
                            (SimpleCommand
                              words: [{(gettextln)} {(DQ ('Cannot rebase: You have unstaged changes.'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_GreatAnd
                                  fd: 16777215
                                  arg_word: {(2)}
                                  spids: [1184]
                                )
                              ]
                            )
                          ]
                          spids: [1174 1175 1188 16777215]
                        )
                        (case_arm
                          pat_list: [{(DQ ('rewrite branches'))}]
                          action: [
                            (SimpleCommand
                              words: [
                                {(gettextln)}
                                {(DQ ('Cannot rewrite branches: You have unstaged changes.'))}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_GreatAnd
                                  fd: 16777215
                                  arg_word: {(2)}
                                  spids: [1203]
                                )
                              ]
                            )
                          ]
                          spids: [1192 1194 1207 16777215]
                        )
                        (case_arm
                          pat_list: [{(DQ ('pull with rebase'))}]
                          action: [
                            (SimpleCommand
                              words: [
                                {(gettextln)}
                                {(DQ ('Cannot pull with rebase: You have unstaged changes.'))}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_GreatAnd
                                  fd: 16777215
                                  arg_word: {(2)}
                                  spids: [1222]
                                )
                              ]
                            )
                          ]
                          spids: [1211 1213 1226 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (SimpleCommand
                              words: [
                                {(eval_gettextln)}
                                {
                                  (DQ ('Cannot ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                    ('action: You have unstaged changes.')
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_GreatAnd
                                  fd: 16777215
                                  arg_word: {(2)}
                                  spids: [1241]
                                )
                              ]
                            )
                          ]
                          spids: [1229 1230 1245 16777215]
                        )
                      ]
                      spids: [1165 1171 1248]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:err) op:Equal rhs:{(1)} spids:[1251])]
                      spids: [1251]
                    )
                  ]
                  spids: [16777215 1158]
                )
              ]
              spids: [16777215 1255]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Pipeline
                      children: [
                        (C {(git)} {(diff-index)} {(--cached)} {(--quiet)} {(--ignore-submodules)} {(HEAD)} 
                          {(--)}
                        )
                      ]
                      negated: T
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [(C {(test)} {($ VSub_Name '$err')} {(Lit_Other '=')} {(0)})]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:action)
                                  op: Equal
                                  rhs: {($ VSub_Number '$1')}
                                  spids: [1295]
                                )
                              ]
                              spids: [1295]
                            )
                            (Case
                              to_match: {(DQ ($ VSub_Name '$action'))}
                              arms: [
                                (case_arm
                                  pat_list: [{(rebase)}]
                                  action: [
                                    (SimpleCommand
                                      words: [
                                        {(gettextln)}
                                        {
                                          (DQ 
                                            (
'Cannot rebase: Your index contains uncommitted changes.'
                                            )
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_GreatAnd
                                          fd: 16777215
                                          arg_word: {(2)}
                                          spids: [1318]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1308 1309 1322 16777215]
                                )
                                (case_arm
                                  pat_list: [{(DQ ('pull with rebase'))}]
                                  action: [
                                    (SimpleCommand
                                      words: [
                                        {(gettextln)}
                                        {
                                          (DQ 
                                            (
'Cannot pull with rebase: Your index contains uncommitted changes.'
                                            )
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_GreatAnd
                                          fd: 16777215
                                          arg_word: {(2)}
                                          spids: [1337]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1326 1328 1341 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (SimpleCommand
                                      words: [
                                        {(eval_gettextln)}
                                        {
                                          (DQ ('Cannot ') 
                                            (EscapedLiteralPart
                                              token: <Lit_EscapedChar '\\$'>
                                            ) ('action: Your index contains uncommitted changes.')
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_GreatAnd
                                          fd: 16777215
                                          arg_word: {(2)}
                                          spids: [1356]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1344 1345 1360 16777215]
                                )
                              ]
                              spids: [1299 1305 1363]
                            )
                          ]
                          spids: [16777215 1292]
                        )
                      ]
                      else_action: [
                        (SimpleCommand
                          words: [
                            {(gettextln)}
                            {(DQ ('Additionally, your index contains uncommitted changes.'))}
                          ]
                          redirects: [
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 16777215
                              arg_word: {(2)}
                              spids: [1375]
                            )
                          ]
                        )
                      ]
                      spids: [1366 1379]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:err) op:Equal rhs:{(1)} spids:[1382])]
                      spids: [1382]
                    )
                  ]
                  spids: [16777215 1278]
                )
              ]
              spids: [16777215 1386]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {($ VSub_Name '$err')} {(Lit_Other '=')} {(1)})]
                  action: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {(-n)} {(DQ ($ VSub_Number '$2'))})
                        (SimpleCommand
                          words: [{(echo)} {(DQ ($ VSub_Number '$2'))}]
                          redirects: [
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 16777215
                              arg_word: {(2)}
                              spids: [1420]
                            )
                          ]
                        )
                      ]
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [16777215 1401]
                )
              ]
              spids: [16777215 1429]
            )
          ]
          spids: [1108]
        )
      spids: [1103 1107]
    )
    (FuncDef
      name: pick_ident_script
      body: 
        (BraceGroup
          children: [
            (While
              cond: [(C {(test)} {($ VSub_Pound '$#')} {(-gt)} {(0)})]
              body: 
                (DoGroup
                  children: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:lid)
                              op: Equal
                              rhs: {($ VSub_Number '$1')}
                              spids: [1483]
                            )
                          ]
                          spids: [1483]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(shift)})
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:uid)
                              op: Equal
                              rhs: {($ VSub_Number '$1')}
                              spids: [1490]
                            )
                          ]
                          spids: [1490]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(shift)})
                    (C {(printf)} {(SQ <'%s'>)} 
                      {
                        (DQ ('\n') ('\t\t/^') ($ VSub_Name '$lid') (' /{\n') ("\t\t\ts/'/'") 
                          (EscapedLiteralPart
                            token: <Lit_EscapedChar '\\\\'>
                          ) (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ("''/g\n") ('\t\t\th\n') ('\t\t\ts/^') 
                          ($ VSub_Name '$lid') (' ')
                        ) (SQ <'\\([^<]*\\) <[^>]*> .*$/\\1/'>) 
                        (DQ ('\n') ('\t\t\ts/.*/GIT_') (${ VSub_Name uid) ("_NAME='&'/p\n") ('\n') 
                          ('\t\t\tg\n') ('\t\t\ts/^') ($ VSub_Name '$lid') (' ')
                        ) (SQ <'[^<]* <\\([^>]*\\)> .*$/\\1/'>) 
                        (DQ ('\n') ('\t\t\ts/.*/GIT_') (${ VSub_Name uid) ("_EMAIL='&'/p\n") ('\n') 
                          ('\t\t\tg\n') ('\t\t\ts/^') ($ VSub_Name '$lid') (' ')
                        ) (SQ <'[^<]* <[^>]*> \\(.*\\)$/@\\1/'>) 
                        (DQ ('\n') ('\t\t\ts/.*/GIT_') (${ VSub_Name uid) ("_DATE='&'/p\n") ('\t\t}\n') 
                          ('\t\t')
                        )
                      }
                    )
                  ]
                  spids: [1480 1564]
                )
            )
            (C {(echo)} {(SQ <'/^$/q'>)})
          ]
          spids: [1466]
        )
      spids: [1461 1465]
    )
    (FuncDef
      name: parse_ident_from_commit
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [
                {(sed)}
                {(-ne)}
                {
                  (DQ 
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [(C {(pick_ident_script)} {(DQ ($ VSub_At '$@'))})]
                        )
                      left_token: <Left_CommandSub '$('>
                      spids: [1601 1607]
                    )
                  )
                }
              ]
              more_env: [
                (env_pair name:LANG val:{(C)} spids:[1590])
                (env_pair name:LC_ALL val:{(C)} spids:[1593])
              ]
            )
          ]
          spids: [1587]
        )
      spids: [1582 1586]
    )
    (FuncDef
      name: get_author_ident_from_commit
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:encoding)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (AndOr
                                ops: [Op_DPipe]
                                children: [
                                  (C {(git)} {(config)} {(i18n.commitencoding)})
                                  (C {(echo)} {(UTF-8)})
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1628 1640]
                      )
                    }
                  spids: [1627]
                )
              ]
              spids: [1627]
            )
            (Pipeline
              children: [
                (C {(git)} {(show)} {(-s)} {(--pretty) (Lit_Other '=') (raw)} 
                  {(--encoding) (Lit_Other '=') (DQ ($ VSub_Name '$encoding'))} {(DQ ($ VSub_Number '$1'))} {(--)}
                )
                (C {(parse_ident_from_commit)} {(author)} {(AUTHOR)})
              ]
              negated: F
            )
          ]
          spids: [1624]
        )
      spids: [1619 1623]
    )
    (FuncDef
      name: clear_local_git_env
      body: 
        (BraceGroup
          children: [
            (C {(unset)} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(C {(git)} {(rev-parse)} {(--local-env-vars)})]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [1695 1701]
                )
              }
            )
          ]
          spids: [1690]
        )
      spids: [1686 1689]
    )
    (FuncDef
      name: create_virtual_base
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sz0)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [{(wc)} {(-c)}]
                                redirects: [
                                  (Redir
                                    op_id: Redir_Less
                                    fd: 16777215
                                    arg_word: {(DQ ($ VSub_Number '$1'))}
                                    spids: [1725]
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1720 1729]
                      )
                    }
                  spids: [1719]
                )
              ]
              spids: [1719]
            )
            (Pipeline
              children: [
                (C {(Lit_Other '@') (Lit_Other '@') (DIFF) (Lit_Other '@') (Lit_Other '@')} {(-u)} 
                  {(-La/) (DQ ($ VSub_Number '$1'))} {(-Lb/) (DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2'))}
                )
                (C {(git)} {(apply)} {(--no-add)})
              ]
              negated: F
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sz1)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [{(wc)} {(-c)}]
                                redirects: [
                                  (Redir
                                    op_id: Redir_Less
                                    fd: 16777215
                                    arg_word: {(DQ ($ VSub_Number '$1'))}
                                    spids: [1773]
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1768 1777]
                      )
                    }
                  spids: [1767]
                )
              ]
              spids: [1767]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (SimpleCommand
                  words: [
                    {(expr)}
                    {($ VSub_Name '$sz0')}
                    {(EscapedLiteralPart token:<Lit_EscapedChar '\\<'>)}
                    {($ VSub_Name '$sz1')}
                    {(EscapedLiteralPart token:<Lit_EscapedChar '\\*'>)}
                    {(2)}
                  ]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [1801]
                    )
                  ]
                )
                (SimpleCommand
                  words: [{(Lit_Other ':')}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Number '$1'))}
                      spids: [1808]
                    )
                  ]
                )
              ]
            )
          ]
          spids: [1716]
        )
      spids: [1712 1715]
    )
    (Case
      to_match: 
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(uname)} {(-s)})])
            left_token: <Left_CommandSub '$('>
            spids: [1822 1826]
          )
        }
      arms: [
        (case_arm
          pat_list: [{(Lit_Other '*') (MINGW) (Lit_Other '*')}]
          action: [
            (FuncDef
              name: sort
              body: 
                (BraceGroup
                  children: [(C {(/usr/bin/sort)} {(DQ ($ VSub_At '$@'))})]
                  spids: [1845]
                )
              spids: [1840 1844]
            )
            (FuncDef
              name: find
              body: 
                (BraceGroup
                  children: [(C {(/usr/bin/find)} {(DQ ($ VSub_At '$@'))})]
                  spids: [1863]
                )
              spids: [1858 1862]
            )
            (FuncDef
              name: pwd
              body: (BraceGroup children:[(C {(builtin)} {(pwd)} {(-W)})] spids:[1885])
              spids: [1880 1884]
            )
            (FuncDef
              name: is_absolute_path
              body: 
                (BraceGroup
                  children: [
                    (Case
                      to_match: {(DQ ($ VSub_Number '$1'))}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(Lit_Other '[') (/) (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) 
                              (Lit_Other ']') (Lit_Other '*')
                            }
                            {(Lit_Other '[') (A-Za-z) (Lit_Other ']') (Lit_Other ':') (Lit_Other '*')}
                          ]
                          action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                          spids: [1915 1928 1935 16777215]
                        )
                      ]
                      spids: [1906 1912 1938]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [1903]
                )
              spids: [1898 1902]
            )
          ]
          spids: [1830 1833 1949 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (FuncDef
              name: is_absolute_path
              body: 
                (BraceGroup
                  children: [
                    (Case
                      to_match: {(DQ ($ VSub_Number '$1'))}
                      arms: [
                        (case_arm
                          pat_list: [{(/) (Lit_Other '*')}]
                          action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                          spids: [1972 1974 1981 16777215]
                        )
                      ]
                      spids: [1963 1969 1984]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [1960]
                )
              spids: [1955 1959]
            )
          ]
          spids: [1951 1952 16777215 1994]
        )
      ]
      spids: [1820 1828 1994]
    )
    (FuncDef
      name: git_dir_init
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:GIT_DIR)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(git)} {(rev-parse)} {(--git-dir)})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [2012 2018]
                          )
                        }
                      spids: [2011]
                    )
                  ]
                  spids: [2011]
                )
                (ControlFlow token:<ControlFlow_Exit exit>)
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$SUBDIRECTORY_OK'))} {(Lit_Other ']')})
                  ]
                  action: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(test)} {(-z)} 
                          {
                            (DQ 
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(git)} {(rev-parse)} {(--show-cdup)})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [2046 2052]
                              )
                            )
                          }
                        )
                        (BraceGroup
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:exit)
                                  op: Equal
                                  rhs: {($ VSub_QMark '$?')}
                                  spids: [2060]
                                )
                              ]
                              spids: [2060]
                            )
                            (SimpleCommand
                              words: [
                                {(gettextln)}
                                {
                                  (DQ 
                                    (
'You need to run this command from the toplevel of the working tree.'
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_GreatAnd
                                  fd: 16777215
                                  arg_word: {(2)}
                                  spids: [2070]
                                )
                              ]
                            )
                            (ControlFlow
                              token: <ControlFlow_Exit exit>
                              arg_word: {($ VSub_Name '$exit')}
                            )
                          ]
                          spids: [2057]
                        )
                      ]
                    )
                  ]
                  spids: [16777215 2038]
                )
              ]
              spids: [16777215 2082]
            )
            (AndOr
              ops: [Op_DAmp Op_DPipe]
              children: [
                (C {(test)} {(-n)} {(DQ ($ VSub_Name '$GIT_DIR'))})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:GIT_DIR)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (AndOr
                                    ops: [Op_DAmp]
                                    children: [(C {(cd)} {(DQ ($ VSub_Name '$GIT_DIR'))}) (C {(pwd)})]
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [2096 2106]
                          )
                        }
                      spids: [2095]
                    )
                  ]
                  spids: [2095]
                )
                (BraceGroup
                  children: [
                    (SimpleCommand
                      words: [
                        {(gettextln)}
                        {(DQ ('Unable to determine absolute path of git directory'))}
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 16777215
                          arg_word: {(2)}
                          spids: [2119]
                        )
                      ]
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [2110]
                )
              ]
            )
            (C {(Lit_Other ':')} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name GIT_OBJECT_DIRECTORY>
                    suffix_op: 
                      (StringUnary
                        op_id: VTest_Equals
                        arg_word: 
                          {
                            (DQ 
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(git)} {(rev-parse)} {(--git-path)} {(objects)})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [2138 2146]
                              )
                            )
                          }
                      )
                    spids: [2134 2148]
                  )
                )
              }
            )
          ]
          spids: [2008]
        )
      spids: [2003 2007]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$NONGIT_OK'))})]
          action: [(C {(git_dir_init)})]
          spids: [16777215 2164]
        )
      ]
      spids: [16777215 2169]
    )
    (FuncDef
      name: peel_committish
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other ':') (/) (Lit_Other '*')}]
                  action: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:peeltmp)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {(git)} {(rev-parse)} {(--verify)} 
                                            {(DQ ($ VSub_Number '$1'))}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [2196 2206]
                                  )
                                }
                              spids: [2195]
                            )
                          ]
                          spids: [2195]
                        )
                        (C {(git)} {(rev-parse)} {(--verify)} {(DQ (${ VSub_Name peeltmp) ('^0'))})
                      ]
                    )
                  ]
                  spids: [2189 2192 2225 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(git)} {(rev-parse)} {(--verify)} {(DQ (${ VSub_Number 1) ('^0'))})]
                  spids: [2228 2229 2246 16777215]
                )
              ]
              spids: [2180 2186 2249]
            )
          ]
          spids: [2177]
        )
      spids: [2172 2176]
    )
  ]
)