(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:tid)
          op: Equal
          rhs: {(DQ ('login with different key exchange algorithms'))}
          spids: [7]
        )
      ]
      spids: [7]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:TIME) op:Equal rhs:{(/usr/bin/time)} spids:[13])]
      spids: [13]
    )
    (C {(cp)} {($ VSub_Name '$OBJ') (/sshd_proxy)} {($ VSub_Name '$OBJ') (/sshd_proxy_bak)})
    (C {(cp)} {($ VSub_Name '$OBJ') (/ssh_proxy)} {($ VSub_Name '$OBJ') (/ssh_proxy_bak)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ALLKEX)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(${ VSub_Name SSH)} {(-Q)} {(kex)})])
                left_token: <Left_Backtick '`'>
                spids: [37 45]
              )
            }
          spids: [36]
        )
      ]
      spids: [36]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KEXOPT)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(echo)} {($ VSub_Name '$ALLKEX')})
                          (C {(tr)} {(SQ <' '>)} {(Lit_Comma ',')})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [48 62]
              )
            }
          spids: [47]
        )
      ]
      spids: [47]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ('KexAlgorithms=') ($ VSub_Name '$KEXOPT'))}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/sshd_proxy)}
          spids: [71]
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:tries) op:Equal rhs:{(DQ ('1 2 3 4'))} spids:[77])]
      spids: [77]
    )
    (ForEach
      iter_name: k
      iter_words: [
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(${ VSub_Name SSH)} {(-Q)} {(kex)})])
            left_token: <Left_Backtick '`'>
            spids: [88 96]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(verbose)} {(DQ ('kex ') ($ VSub_Name '$k'))})
            (ForEach
              iter_name: i
              iter_words: [{($ VSub_Name '$tries')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(${ VSub_Name SSH)} {(-F)} {($ VSub_Name '$OBJ') (/ssh_proxy)} {(-o)} 
                      {(Lit_VarLike 'KexAlgorithms=') ($ VSub_Name '$k')} {(x)} {(true)}
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(fail)} {(DQ ('ssh kex ') ($ VSub_Name '$k'))})]
                          spids: [-1 154]
                        )
                      ]
                      spids: [-1 165]
                    )
                  ]
                  spids: [119 168]
                )
              spids: [115 117]
            )
          ]
          spids: [99 170]
        )
      spids: [87 97]
    )
  ]
)