(CommandList
  children: [
    (If
      arms: [
        (if_arm
          cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$NO_CURL'))})]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:skip_all)
                  op: Equal
                  rhs: {(SQ <'skipping test, git built without http support'>)}
                  spids: [107]
                )
              ]
              spids: [107]
            )
            (C {(test_done)})
          ]
          spids: [16777215 104]
        )
      ]
      spids: [16777215 115]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-n)} {(DQ ($ VSub_Name '$NO_EXPAT'))})
                (C {(test)} {(-n)} {(DQ ($ VSub_Name '$LIB_HTTPD_DAV'))})
              ]
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:skip_all)
                  op: Equal
                  rhs: {(SQ <'skipping test, git built without expat support'>)}
                  spids: [141]
                )
              ]
              spids: [141]
            )
            (C {(test_done)})
          ]
          spids: [16777215 138]
        )
      ]
      spids: [16777215 149]
    )
    (C {(test_tristate)} {(GIT_TEST_HTTPD)})
    (If
      arms: [
        (if_arm
          cond: [(C {(test)} {(DQ ($ VSub_Name '$GIT_TEST_HTTPD'))} {(Lit_Other '=')} {(false)})]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:skip_all)
                  op: Equal
                  rhs: {(DQ ('Network testing disabled (unset GIT_TEST_HTTPD to enable)'))}
                  spids: [171]
                )
              ]
              spids: [171]
            )
            (C {(test_done)})
          ]
          spids: [16777215 168]
        )
      ]
      spids: [16777215 179]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (Pipeline children:[(C {(test_have_prereq)} {(NOT_ROOT)})] negated:T)
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(test_skip_or_die)} {($ VSub_Name '$GIT_TEST_HTTPD')} 
              {(DQ ('Cannot run httpd tests as root'))}
            )
          ]
          spids: [16777215 191]
        )
      ]
      spids: [16777215 204]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:HTTPD_PARA) op:Equal rhs:{(DQ )} spids:[207])]
      spids: [207]
    )
    (ForEach
      iter_name: DEFAULT_HTTPD_PATH
      iter_words: [{(SQ </usr/sbin/httpd>)} {(SQ </usr/sbin/apache2>)}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-x)} {(DQ ($ VSub_Name '$DEFAULT_HTTPD_PATH'))})]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [16777215 240]
                )
              ]
              spids: [16777215 246]
            )
          ]
          spids: [226 248]
        )
      spids: [217 16777215]
    )
    (ForEach
      iter_name: DEFAULT_HTTPD_MODULE_PATH
      iter_words: [
        {(SQ </usr/libexec/apache2>)}
        {(SQ </usr/lib/apache2/modules>)}
        {(SQ </usr/lib64/httpd/modules>)}
        {(SQ </usr/lib/httpd/modules>)}
      ]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-d)} {(DQ ($ VSub_Name '$DEFAULT_HTTPD_MODULE_PATH'))})]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [16777215 293]
                )
              ]
              spids: [16777215 299]
            )
          ]
          spids: [279 301]
        )
      spids: [256 16777215]
    )
    (Case
      to_match: 
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(uname)})])
            left_token: <Left_CommandSub '$('>
            spids: [306 308]
          )
        }
      arms: [
        (case_arm
          pat_list: [{(Darwin)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:HTTPD_PARA)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$HTTPD_PARA') (' -DDarwin'))}
                  spids: [317]
                )
              ]
              spids: [317]
            )
          ]
          spids: [313 314 324 16777215]
        )
      ]
      spids: [304 310 326]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:LIB_HTTPD_PATH)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name LIB_HTTPD_PATH>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_Hyphen
                    arg_word: {(DQ ($ VSub_Name '$DEFAULT_HTTPD_PATH'))}
                  )
                spids: [330 336]
              )
            }
          spids: [329]
        )
      ]
      spids: [329]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:LIB_HTTPD_PORT)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name LIB_HTTPD_PORT>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_Hyphen
                    arg_word: 
                      {
                        (BracedVarSub
                          token: <VSub_Name this_test>
                          suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(t)})
                          spids: [342 346]
                        )
                      }
                  )
                spids: [339 347]
              )
            }
          spids: [338]
        )
      ]
      spids: [338]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TEST_PATH)
          op: Equal
          rhs: {(DQ ($ VSub_Name '$TEST_DIRECTORY')) (/lib-httpd)}
          spids: [350]
        )
      ]
      spids: [350]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:HTTPD_ROOT_PATH)
          op: Equal
          rhs: {(DQ ($ VSub_Name '$PWD')) (/httpd)}
          spids: [356]
        )
      ]
      spids: [356]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:HTTPD_DOCUMENT_ROOT_PATH)
          op: Equal
          rhs: {($ VSub_Name '$HTTPD_ROOT_PATH') (/www)}
          spids: [362]
        )
      ]
      spids: [362]
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:GIT_VALGRIND)
              op: Equal
              rhs: {($ VSub_Name '$GIT_VALGRIND')}
              spids: [370]
            )
          ]
          spids: [370]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(export)} {(GIT_VALGRIND)})
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:GIT_VALGRIND_OPTIONS)
              op: Equal
              rhs: {($ VSub_Name '$GIT_VALGRIND_OPTIONS')}
              spids: [378]
            )
          ]
          spids: [378]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(export)} {(GIT_VALGRIND_OPTIONS)})
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:GIT_TRACE)
              op: Equal
              rhs: {($ VSub_Name '$GIT_TRACE')}
              spids: [386]
            )
          ]
          spids: [386]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(export)} {(GIT_TRACE)})
    (If
      arms: [
        (if_arm
          cond: [
            (Pipeline
              children: [(C {(test)} {(-x)} {(DQ ($ VSub_Name '$LIB_HTTPD_PATH'))})]
              negated: T
            )
          ]
          action: [
            (C {(test_skip_or_die)} {($ VSub_Name '$GIT_TEST_HTTPD')} 
              {(DQ ("no web server found at '") ($ VSub_Name '$LIB_HTTPD_PATH') ("'"))}
            )
          ]
          spids: [16777215 407]
        )
      ]
      spids: [16777215 420]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:HTTPD_VERSION)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {($ VSub_Name '$LIB_HTTPD_PATH')} {(-v)})
                          (C {(sed)} {(-n)} 
                            {(SQ <'s/^Server version: Apache\\/\\([0-9]*\\)\\..*$/\\1/p; q'>)}
                          )
                        ]
                        negated: F
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [424 440]
              )
            }
          spids: [423]
        )
      ]
      spids: [423]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$HTTPD_VERSION'))})]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$LIB_HTTPD_MODULE_PATH'))})]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Pipeline
                              children: [(C {(test)} {($ VSub_Name '$HTTPD_VERSION')} {(-ge)} {(2)})]
                              negated: T
                            )
                          ]
                          action: [
                            (C {(test_skip_or_die)} {($ VSub_Name '$GIT_TEST_HTTPD')} 
                              {(DQ ('at least Apache version 2 is required'))}
                            )
                          ]
                          spids: [16777215 483]
                        )
                      ]
                      spids: [16777215 497]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Pipeline
                              children: [
                                (C {(test)} {(-d)} {(DQ ($ VSub_Name '$DEFAULT_HTTPD_MODULE_PATH'))})
                              ]
                              negated: T
                            )
                          ]
                          action: [
                            (C {(test_skip_or_die)} {($ VSub_Name '$GIT_TEST_HTTPD')} 
                              {(DQ ('Apache module directory not found'))}
                            )
                          ]
                          spids: [16777215 513]
                        )
                      ]
                      spids: [16777215 527]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:LIB_HTTPD_MODULE_PATH)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$DEFAULT_HTTPD_MODULE_PATH'))}
                          spids: [531]
                        )
                      ]
                      spids: [531]
                    )
                  ]
                  spids: [16777215 467]
                )
              ]
              spids: [16777215 537]
            )
          ]
          spids: [16777215 453]
        )
      ]
      else_action: [
        (C {(test_skip_or_die)} {($ VSub_Name '$GIT_TEST_HTTPD')} 
          {(DQ ("Could not identify web server at '") ($ VSub_Name '$LIB_HTTPD_PATH') ("'"))}
        )
      ]
      spids: [539 554]
    )
    (FuncDef
      name: install_script
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(write_script)} {(DQ ($ VSub_Name '$HTTPD_ROOT_PATH') (/) ($ VSub_Number '$1'))}]
              redirects: [
                (Redir
                  op_id: Redir_Less
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$TEST_PATH') (/) ($ VSub_Number '$1'))}
                  spids: [573]
                )
              ]
            )
          ]
          spids: [562]
        )
      spids: [557 561]
    )
    (FuncDef
      name: prepare_httpd
      body: 
        (BraceGroup
          children: [
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$HTTPD_DOCUMENT_ROOT_PATH'))})
            (C {(cp)} {(DQ ($ VSub_Name '$TEST_PATH')) (/passwd)} {(DQ ($ VSub_Name '$HTTPD_ROOT_PATH'))})
            (C {(install_script)} {(broken-smart-http.sh)})
            (C {(install_script)} {(error.sh)})
            (C {(ln)} {(-s)} {(DQ ($ VSub_Name '$LIB_HTTPD_MODULE_PATH'))} 
              {(DQ ($ VSub_Name '$HTTPD_ROOT_PATH') (/modules))}
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$LIB_HTTPD_SSL'))})]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:HTTPD_PROTO)
                          op: Equal
                          rhs: {(https)}
                          spids: [651]
                        )
                      ]
                      spids: [651]
                    )
                    (SimpleCommand
                      words: [
                        {(openssl)}
                        {(req)}
                        {(-config)}
                        {(DQ ($ VSub_Name '$TEST_PATH') (/ssl.cnf))}
                        {(-new)}
                        {(-x509)}
                        {(-nodes)}
                        {(-out)}
                        {(DQ ($ VSub_Name '$HTTPD_ROOT_PATH') (/httpd.pem))}
                        {(-keyout)}
                        {(DQ ($ VSub_Name '$HTTPD_ROOT_PATH') (/httpd.pem))}
                      ]
                      more_env: [
                        (env_pair
                          name: RANDFILE_PATH
                          val: {(DQ ($ VSub_Name '$HTTPD_ROOT_PATH')) (/.rnd)}
                          spids: [656]
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:GIT_SSL_NO_VERIFY)
                          op: Equal
                          rhs: {(t)}
                          spids: [702]
                        )
                      ]
                      spids: [702]
                    )
                    (C {(export)} {(GIT_SSL_NO_VERIFY)})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:HTTPD_PARA)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$HTTPD_PARA') (' -DSSL'))}
                          spids: [711]
                        )
                      ]
                      spids: [711]
                    )
                  ]
                  spids: [16777215 648]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:HTTPD_PROTO)
                      op: Equal
                      rhs: {(http)}
                      spids: [721]
                    )
                  ]
                  spids: [721]
                )
              ]
              spids: [718 725]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:HTTPD_DEST)
                  op: Equal
                  rhs: {(127.0.0.1) (Lit_Other ':') ($ VSub_Name '$LIB_HTTPD_PORT')}
                  spids: [728]
                )
              ]
              spids: [728]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:HTTPD_URL)
                  op: Equal
                  rhs: {($ VSub_Name '$HTTPD_PROTO') (Lit_Other ':') (//) ($ VSub_Name '$HTTPD_DEST')}
                  spids: [734]
                )
              ]
              spids: [734]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:HTTPD_URL_USER)
                  op: Equal
                  rhs: 
                    {($ VSub_Name '$HTTPD_PROTO') (Lit_Other ':') (//user) (Lit_Other '%') (40host) 
                      (Lit_Other '@') ($ VSub_Name '$HTTPD_DEST')
                    }
                  spids: [741]
                )
              ]
              spids: [741]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:HTTPD_URL_USER_PASS)
                  op: Equal
                  rhs: 
                    {($ VSub_Name '$HTTPD_PROTO') (Lit_Other ':') (//user) (Lit_Other '%') (40host) 
                      (Lit_Other ':') (pass) (Lit_Other '%') (40host) (Lit_Other '@') ($ VSub_Name '$HTTPD_DEST')
                    }
                  spids: [751]
                )
              ]
              spids: [751]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(test)} {(-n)} {(DQ ($ VSub_Name '$LIB_HTTPD_DAV'))})
                        (C {(test)} {(-n)} {(DQ ($ VSub_Name '$LIB_HTTPD_SVN'))})
                      ]
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:HTTPD_PARA)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$HTTPD_PARA') (' -DDAV'))}
                          spids: [790]
                        )
                      ]
                      spids: [790]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$LIB_HTTPD_SVN'))})]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:HTTPD_PARA)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$HTTPD_PARA') (' -DSVN'))}
                                  spids: [812]
                                )
                              ]
                              spids: [812]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:LIB_HTTPD_SVNPATH)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$rawsvnrepo'))}
                                  spids: [819]
                                )
                              ]
                              spids: [819]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:svnrepo)
                                  op: Equal
                                  rhs: {(DQ ('http://127.0.0.1:') ($ VSub_Name '$LIB_HTTPD_PORT') (/))}
                                  spids: [825]
                                )
                              ]
                              spids: [825]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:svnrepo)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$svnrepo') ($ VSub_Name '$LIB_HTTPD_SVN'))}
                                  spids: [833]
                                )
                              ]
                              spids: [833]
                            )
                            (C {(export)} {(LIB_HTTPD_SVN)} {(LIB_HTTPD_SVNPATH)})
                          ]
                          spids: [16777215 809]
                        )
                      ]
                      spids: [16777215 847]
                    )
                  ]
                  spids: [16777215 787]
                )
              ]
              spids: [16777215 850]
            )
          ]
          spids: [587]
        )
      spids: [583 586]
    )
    (FuncDef
      name: start_httpd
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(prepare_httpd)}]
              redirects: [
                (Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(3)} spids:[864])
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(4)} spids:[867])
              ]
            )
            (C {(trap)} {(SQ <'code=$?; stop_httpd; (exit $code); die'>)} {(EXIT)})
            (SimpleCommand
              words: [
                {(DQ ($ VSub_Name '$LIB_HTTPD_PATH'))}
                {(-d)}
                {(DQ ($ VSub_Name '$HTTPD_ROOT_PATH'))}
                {(-f)}
                {(DQ ($ VSub_Name '$TEST_PATH') (/apache.conf))}
                {($ VSub_Name '$HTTPD_PARA')}
                {(-c)}
                {(DQ ('Listen 127.0.0.1:') ($ VSub_Name '$LIB_HTTPD_PORT'))}
                {(-k)}
                {(start)}
              ]
              redirects: [
                (Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(3)} spids:[918])
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(4)} spids:[921])
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {($ VSub_QMark '$?')} {(-ne)} {(0)})]
                  action: [
                    (C {(trap)} {(SQ <die>)} {(EXIT)})
                    (SimpleCommand
                      words: [{(cat)} {(DQ ($ VSub_Name '$HTTPD_ROOT_PATH')) (/error.log)}]
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 16777215
                          arg_word: {(4)}
                          spids: [955]
                        )
                        (Redir
                          op_id: Redir_Great
                          fd: 2
                          arg_word: {(/dev/null)}
                          spids: [958]
                        )
                      ]
                    )
                    (C {(test_skip_or_die)} {($ VSub_Name '$GIT_TEST_HTTPD')} 
                      {(DQ ('web server setup failed'))}
                    )
                  ]
                  spids: [16777215 936]
                )
              ]
              spids: [16777215 971]
            )
          ]
          spids: [859]
        )
      spids: [855 858]
    )
    (FuncDef
      name: stop_httpd
      body: 
        (BraceGroup
          children: [
            (C {(trap)} {(SQ <die>)} {(EXIT)})
            (C {(DQ ($ VSub_Name '$LIB_HTTPD_PATH'))} {(-d)} {(DQ ($ VSub_Name '$HTTPD_ROOT_PATH'))} 
              {(-f)} {(DQ ($ VSub_Name '$TEST_PATH') (/apache.conf))} {($ VSub_Name '$HTTPD_PARA')} {(-k)} {(stop)}
            )
          ]
          spids: [980]
        )
      spids: [976 979]
    )
    (FuncDef
      name: test_http_push_nonff
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:REMOTE_REPO)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [1029]
                )
              ]
              spids: [1029]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:LOCAL_REPO)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [1033]
                )
              ]
              spids: [1033]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:BRANCH)
                  op: Equal
                  rhs: {($ VSub_Number '$3')}
                  spids: [1037]
                )
              ]
              spids: [1037]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:EXPECT_CAS_RESULT)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 4>
                        suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(failure)})
                        spids: [1042 1046]
                      )
                    }
                  spids: [1041]
                )
              ]
              spids: [1041]
            )
            (C {(test_expect_success)} {(SQ <'non-fast-forward push fails'>)} 
              {
                (SQ <'\n'> <'\t\tcd "$REMOTE_REPO" &&\n'> 
                  <'\t\tHEAD=$(git rev-parse --verify HEAD) &&\n'> <'\n'> <'\t\tcd "$LOCAL_REPO" &&\n'> <'\t\tgit checkout $BRANCH &&\n'> 
                  <'\t\techo "changed" > path2 &&\n'> <'\t\tgit commit -a -m path2 --amend &&\n'> <'\n'> 
                  <'\t\ttest_must_fail git push -v origin >output 2>&1 &&\n'> <'\t\t(cd "$REMOTE_REPO" &&\n'> <'\t\t test $HEAD = $(git rev-parse --verify HEAD))\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_success)} {(SQ <'non-fast-forward push show ref status'>)} 
              {
                (SQ <'\n'> 
                  <
'\t\tgrep "^ ! \\[rejected\\][ ]*$BRANCH -> $BRANCH (non-fast-forward)$" output\n'
                  > <'\t'>
                )
              }
            )
            (C {(test_expect_success)} {(SQ <'non-fast-forward push shows help message'>)} 
              {(SQ <'\n'> <'\t\ttest_i18ngrep "Updates were rejected because" output\n'> <'\t'>)}
            )
            (C {(test_expect_) (${ VSub_Name EXPECT_CAS_RESULT)} {(SQ <'force with lease aka cas'>)} 
              {
                (SQ <'\n'> <'\t\tHEAD=$(\tcd "$REMOTE_REPO" && git rev-parse --verify HEAD ) &&\n'> 
                  <'\t\ttest_when_finished '>
                ) (EscapedLiteralPart token:<Lit_EscapedChar "\\'">) 
                (SQ <'\n'> <'\t\t\t(cd "$REMOTE_REPO" && git update-ref HEAD "$HEAD")\n'> <'\t\t'>) (EscapedLiteralPart token:<Lit_EscapedChar "\\'">) 
                (SQ <' &&\n'> <'\t\t(\n'> <'\t\t\tcd "$LOCAL_REPO" &&\n'> 
                  <'\t\t\tgit push -v --force-with-lease=$BRANCH:$HEAD origin\n'> <'\t\t) &&\n'> <'\t\tgit rev-parse --verify "$BRANCH" >expect &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd "$REMOTE_REPO" && git rev-parse --verify HEAD\n'> <'\t\t) >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t'>
                )
              }
            )
          ]
          spids: [1026]
        )
      spids: [1021 1025]
    )
    (FuncDef
      name: setup_askpass_helper
      body: 
        (BraceGroup
          children: [
            (C {(test_expect_success)} {(SQ <'setup askpass helper'>)} 
              {
                (SQ <'\n'> <'\t\twrite_script "$TRASH_DIRECTORY/askpass" <<-\\EOF &&\n'> 
                  <'\t\techo >>"$TRASH_DIRECTORY/askpass-query" "askpass: $*" &&\n'> <'\t\tcase "$*" in\n'> <'\t\t*Username*)\n'> <'\t\t\twhat=user\n'> <'\t\t\t;;\n'> <'\t\t*Password*)\n'> 
                  <'\t\t\twhat=pass\n'> <'\t\t\t;;\n'> <'\t\tesac &&\n'> <'\t\tcat "$TRASH_DIRECTORY/askpass-$what"\n'> <'\t\tEOF\n'> 
                  <'\t\tGIT_ASKPASS="$TRASH_DIRECTORY/askpass" &&\n'> <'\t\texport GIT_ASKPASS &&\n'> <'\t\texport TRASH_DIRECTORY\n'> <'\t'>
                )
              }
            )
          ]
          spids: [1144]
        )
      spids: [1140 1143]
    )
    (FuncDef
      name: set_askpass
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (SimpleCommand
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$TRASH_DIRECTORY') (/askpass-query))}
                      spids: [1183]
                    )
                  ]
                )
                (SimpleCommand
                  words: [{(echo)} {(DQ ($ VSub_Number '$1'))}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$TRASH_DIRECTORY') (/askpass-user))}
                      spids: [1198]
                    )
                  ]
                )
                (SimpleCommand
                  words: [{(echo)} {(DQ ($ VSub_Number '$2'))}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$TRASH_DIRECTORY') (/askpass-pass))}
                      spids: [1213]
                    )
                  ]
                )
              ]
            )
          ]
          spids: [1180]
        )
      spids: [1176 1179]
    )
    (FuncDef
      name: expect_askpass
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dest)
                  op: Equal
                  rhs: 
                    {($ VSub_Name '$HTTPD_DEST') 
                      (BracedVarSub
                        token: <VSub_Number 3>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_Plus
                            arg_word: {(Lit_Slash /) ($ VSub_Number '$3')}
                          )
                        spids: [1231 1236]
                      )
                    }
                  spids: [1229]
                )
              ]
              spids: [1229]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (BraceGroup
                  children: [
                    (Case
                      to_match: {(DQ ($ VSub_Number '$1'))}
                      arms: [
                        (case_arm
                          pat_list: [{(none)}]
                          spids: [1252 1253 1256 16777215]
                        )
                        (case_arm
                          pat_list: [{(pass)}]
                          action: [
                            (C {(echo)} 
                              {
                                (DQ ("askpass: Password for 'http://") ($ VSub_Number '$2') ('@') 
                                  ($ VSub_Name '$dest') ("': ")
                                )
                              }
                            )
                          ]
                          spids: [1259 1260 1274 16777215]
                        )
                        (case_arm
                          pat_list: [{(both)}]
                          action: [
                            (C {(echo)} 
                              {(DQ ("askpass: Username for 'http://") ($ VSub_Name '$dest') ("': "))}
                            )
                            (C {(echo)} 
                              {
                                (DQ ("askpass: Password for 'http://") ($ VSub_Number '$2') ('@') 
                                  ($ VSub_Name '$dest') ("': ")
                                )
                              }
                            )
                          ]
                          spids: [1277 1278 1301 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [(C {(false)})]
                          spids: [1304 1305 1311 16777215]
                        )
                      ]
                      spids: [1243 1249 1314]
                    )
                  ]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$TRASH_DIRECTORY') (/askpass-expect))}
                      spids: [1319]
                    )
                  ]
                  spids: [1240]
                )
                (C {(test_cmp)} {(DQ ($ VSub_Name '$TRASH_DIRECTORY') (/askpass-expect))} 
                  {(DQ ($ VSub_Name '$TRASH_DIRECTORY') (/askpass-query))}
                )
              ]
            )
          ]
          spids: [1226]
        )
      spids: [1222 1225]
    )
  ]
)