(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"CRLF conversion all combinations">)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (If
      arms: [
        (if_arm
          cond: [(Pipeline children:[(C {(test_have_prereq)} {(EXPENSIVE)})] negated:True)]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:skip_all)
                  op: Equal
                  rhs: {(DQ ("EXPENSIVE not set"))}
                  spids: [26]
                )
              ]
              spids: [26]
            )
            (C {(test_done)})
          ]
          spids: [-1 23]
        )
      ]
      spids: [-1 34]
    )
    (FuncDef
      name: compare_files
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (SimpleCommand
                  words: [{(tr)} {(SQ <"\\015\\000">)} {(QN)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: -1
                      arg_word: {(DQ ($ VSub_Number "$1"))}
                      spids: [53]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(DQ ($ VSub_Number "$1")) (.expect)}
                      spids: [58]
                    )
                  ]
                )
                (AndOr
                  children: [
                    (Pipeline
                      children: [
                        (SimpleCommand
                          words: [{(tr)} {(SQ <"\\015\\000">)} {(QN)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Less
                              fd: -1
                              arg_word: {(DQ ($ VSub_Number "$2"))}
                              spids: [75]
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [{(tr)} {(-d)} {(SQ <Z>)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(DQ ($ VSub_Number "$2")) (.actual)}
                              spids: [90]
                            )
                          ]
                        )
                      ]
                      negated: False
                    )
                    (AndOr
                      children: [
                        (C {(test_cmp)} {(DQ ($ VSub_Number "$1")) (.expect)} 
                          {(DQ ($ VSub_Number "$2")) (.actual)}
                        )
                        (C {(rm)} {(DQ ($ VSub_Number "$1")) (.expect)} 
                          {(DQ ($ VSub_Number "$2")) (.actual)}
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [42]
        )
      spids: [37 41]
    )
    (FuncDef
      name: compare_ws_file
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pfx)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [137]
                )
              ]
              spids: [137]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:exp)
                  op: Equal
                  rhs: {($ VSub_Number "$2") (.expect)}
                  spids: [141]
                )
              ]
              spids: [141]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:act)
                  op: Equal
                  rhs: {($ VSub_Name "$pfx") (.actual.) ($ VSub_Number "$3")}
                  spids: [146]
                )
              ]
              spids: [146]
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [{(tr)} {(SQ <"\\015\\000abcdef0123456789">)} {(QN00000000000000000)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: -1
                      arg_word: {(DQ ($ VSub_Number "$2"))}
                      spids: [160]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(DQ ($ VSub_Name "$exp"))}
                      spids: [165]
                    )
                  ]
                )
                (AndOr
                  children: [
                    (SimpleCommand
                      words: [{(tr)} {(SQ <"\\015\\000abcdef0123456789">)} {(QN00000000000000000)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Less
                          fd: -1
                          arg_word: {(DQ ($ VSub_Number "$3"))}
                          spids: [181]
                        )
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(DQ ($ VSub_Name "$act"))}
                          spids: [186]
                        )
                      ]
                    )
                    (AndOr
                      children: [
                        (C {(test_cmp)} {(DQ ($ VSub_Name "$exp"))} {(DQ ($ VSub_Name "$act"))})
                        (C {(rm)} {(DQ ($ VSub_Name "$exp"))} {(DQ ($ VSub_Name "$act"))})
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [134]
        )
      spids: [129 133]
    )
    (FuncDef
      name: create_gitattributes
      body: 
        (BraceGroup
          children: [
            (BraceGroup
              children: [
                (While
                  cond: [(C {(test)} {(DQ ($ VSub_Pound "$#"))} {(KW_Bang "!") (Lit_Other "=")} {(0)})]
                  body: 
                    (DoGroup
                      children: [
                        (AndOr
                          children: [
                            (Case
                              to_match: {(DQ ($ VSub_Number "$1"))}
                              arms: [
                                (case_arm
                                  pat_list: [{(auto)}]
                                  action: [(C {(echo)} {(SQ <"*.txt text=auto">)})]
                                  spids: [257 258 266 -1]
                                )
                                (case_arm
                                  pat_list: [{(ident)}]
                                  action: [(C {(echo)} {(SQ <"*.txt ident">)})]
                                  spids: [269 270 278 -1]
                                )
                                (case_arm
                                  pat_list: [{(text)}]
                                  action: [(C {(echo)} {(SQ <"*.txt text">)})]
                                  spids: [281 282 290 -1]
                                )
                                (case_arm
                                  pat_list: [{(-text)}]
                                  action: [(C {(echo)} {(SQ <"*.txt -text">)})]
                                  spids: [293 294 302 -1]
                                )
                                (case_arm
                                  pat_list: [{(crlf)}]
                                  action: [(C {(echo)} {(SQ <"*.txt eol=crlf">)})]
                                  spids: [305 306 314 -1]
                                )
                                (case_arm
                                  pat_list: [{(lf)}]
                                  action: [(C {(echo)} {(SQ <"*.txt eol=lf">)})]
                                  spids: [317 318 326 -1]
                                )
                                (case_arm
                                  pat_list: [{(DQ )}]
                                  spids: [-1 331 333 -1]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other "*")}]
                                  action: [
                                    (SimpleCommand
                                      words: [
                                        {(echo)}
                                        {(invalid)}
                                        {(attribute) (Lit_Other ":")}
                                        {(DQ ($ VSub_Number "$1"))}
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_GreatAnd
                                          fd: -1
                                          arg_word: {(2)}
                                          spids: [342]
                                        )
                                      ]
                                    )
                                    (C {(exit)} {(1)})
                                  ]
                                  spids: [336 337 360 -1]
                                )
                              ]
                              spids: [248 254 363]
                            )
                            (C {(shift)})
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      spids: [245 371]
                    )
                )
              ]
              redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(.gitattributes)} spids:[376])]
              spids: [228]
            )
          ]
          spids: [225]
        )
      spids: [220 224]
    )
    (FuncDef
      name: create_NNO_files
      body: 
        (BraceGroup
          children: [
            (ForEach
              iter_name: crlf
              iter_words: [{(false)} {(true)} {(input)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (ForEach
                      iter_name: attr
                      iter_words: [{(DQ )} {(auto)} {(text)} {(-text)}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (ForEach
                              iter_name: aeol
                              iter_words: [{(DQ )} {(lf)} {(crlf)}]
                              do_arg_iter: False
                              body: 
                                (DoGroup
                                  children: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:pfx)
                                          op: Equal
                                          rhs: 
                                            {(NNO_attr_) (${ VSub_Name attr) (_aeol_) 
                                              (${ VSub_Name aeol) (_) (${ VSub_Name crlf)
                                            }
                                          spids: [442]
                                        )
                                      ]
                                      spids: [442]
                                    )
                                    (AndOr
                                      children: [
                                        (C {(cp)} {(CRLF_mix_LF)} {(${ VSub_Name pfx) (_LF.txt)})
                                        (AndOr
                                          children: [
                                            (C {(cp)} {(CRLF_mix_LF)} {(${ VSub_Name pfx) (_CRLF.txt)})
                                            (AndOr
                                              children: [
                                                (C {(cp)} {(CRLF_mix_LF)} 
                                                  {(${ VSub_Name pfx) (_CRLF_mix_LF.txt)}
                                                )
                                                (AndOr
                                                  children: [
                                                    (C {(cp)} {(CRLF_mix_LF)} 
                                                      {(${ VSub_Name pfx) (_LF_mix_CR.txt)}
                                                    )
                                                    (C {(cp)} {(CRLF_mix_LF)} 
                                                      {(${ VSub_Name pfx) (_CRLF_nul.txt)}
                                                    )
                                                  ]
                                                  op_id: Op_DAmp
                                                )
                                              ]
                                              op_id: Op_DAmp
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  spids: [439 515]
                                )
                              spids: [430 -1]
                            )
                          ]
                          spids: [422 518]
                        )
                      spids: [411 -1]
                    )
                  ]
                  spids: [403 521]
                )
              spids: [395 -1]
            )
          ]
          spids: [387]
        )
      spids: [382 386]
    )
    (FuncDef
      name: check_warning
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number "$1"))}
              arms: [
                (case_arm
                  pat_list: [{(LF_CRLF)}]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ("warning: LF will be replaced by CRLF"))}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(DQ ($ VSub_Number "$2")) (.expect)}
                          spids: [552]
                        )
                      ]
                    )
                  ]
                  spids: [543 544 558 -1]
                )
                (case_arm
                  pat_list: [{(CRLF_LF)}]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ("warning: CRLF will be replaced by LF"))}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(DQ ($ VSub_Number "$2")) (.expect)}
                          spids: [570]
                        )
                      ]
                    )
                  ]
                  spids: [561 562 576 -1]
                )
                (case_arm
                  pat_list: [{(SQ )}]
                  action: [
                    (SimpleCommand
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(DQ ($ VSub_Number "$2")) (.expect)}
                          spids: [583]
                        )
                      ]
                    )
                  ]
                  spids: [-1 581 589 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [
                            {(echo)}
                            {(DQ ("Illegal 1")) (Lit_Other ":")}
                            {(DQ ($ VSub_Number "$1"))}
                          ]
                          redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[597])]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {(false)}
                    )
                  ]
                  spids: [592 593 615 -1]
                )
              ]
              spids: [534 540 618]
            )
            (Pipeline
              children: [
                (C {(grep)} {(DQ ("will be replaced by"))} {(DQ ($ VSub_Number "$2"))})
                (C {(sed)} {(-e)} 
                  {
                    (DQ (s/) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) (".*") 
                      (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) (" in [^ ]*") (Lit_Other "$") (/) (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (/)
                    )
                  }
                )
                (SimpleCommand
                  words: [{(uniq)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(DQ ($ VSub_Number "$2")) (.actual)}
                      spids: [653]
                    )
                  ]
                )
              ]
              negated: False
            )
            (C {(test_cmp)} {(DQ ($ VSub_Number "$2")) (.expect)} {(DQ ($ VSub_Number "$2")) (.actual)})
          ]
          spids: [531]
        )
      spids: [526 530]
    )
    (FuncDef
      name: commit_check_warn
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:crlf)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [683]
                )
              ]
              spids: [683]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:attr)
                  op: Equal
                  rhs: {($ VSub_Number "$2")}
                  spids: [687]
                )
              ]
              spids: [687]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lfname)
                  op: Equal
                  rhs: {($ VSub_Number "$3")}
                  spids: [691]
                )
              ]
              spids: [691]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:crlfname)
                  op: Equal
                  rhs: {($ VSub_Number "$4")}
                  spids: [695]
                )
              ]
              spids: [695]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lfmixcrlf)
                  op: Equal
                  rhs: {($ VSub_Number "$5")}
                  spids: [699]
                )
              ]
              spids: [699]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lfmixcr)
                  op: Equal
                  rhs: {($ VSub_Number "$6")}
                  spids: [703]
                )
              ]
              spids: [703]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:crlfnul)
                  op: Equal
                  rhs: {($ VSub_Number "$7")}
                  spids: [707]
                )
              ]
              spids: [707]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pfx)
                  op: Equal
                  rhs: {(crlf_) (${ VSub_Name crlf) (_attr_) (${ VSub_Name attr)}
                  spids: [711]
                )
              ]
              spids: [711]
            )
            (AndOr
              children: [
                (C {(create_gitattributes)} {(DQ ($ VSub_Name "$attr"))})
                (AndOr
                  children: [
                    (ForEach
                      iter_name: f
                      iter_words: [{(LF)} {(CRLF)} {(LF_mix_CR)} {(CRLF_mix_LF)} {(LF_nul)} {(CRLF_nul)}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (AndOr
                              children: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:fname)
                                      op: Equal
                                      rhs: {(${ VSub_Name pfx) (_) ($ VSub_Name "$f") (.txt)}
                                      spids: [753]
                                    )
                                  ]
                                  spids: [753]
                                )
                                (AndOr
                                  children: [
                                    (C {(cp)} {($ VSub_Name "$f")} {($ VSub_Name "$fname")})
                                    (SimpleCommand
                                      words: [
                                        {(git)}
                                        {(-c)}
                                        {(core.autocrlf) (Lit_Other "=") ($ VSub_Name "$crlf")}
                                        {(add)}
                                        {($ VSub_Name "$fname")}
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 2
                                          arg_word: 
                                            {(DQ (${ VSub_Name pfx) (_) ($ VSub_Name "$f") (.err))}
                                          spids: [785]
                                        )
                                      ]
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          spids: [750 796]
                        )
                      spids: [736 -1]
                    )
                    (AndOr
                      children: [
                        (C {(git)} {(commit)} {(-m)} {(DQ ("core.autocrlf ") ($ VSub_Name "$crlf"))})
                        (AndOr
                          children: [
                            (C {(check_warning)} {(DQ ($ VSub_Name "$lfname"))} 
                              {(${ VSub_Name pfx) (_LF.err)}
                            )
                            (AndOr
                              children: [
                                (C {(check_warning)} {(DQ ($ VSub_Name "$crlfname"))} 
                                  {(${ VSub_Name pfx) (_CRLF.err)}
                                )
                                (AndOr
                                  children: [
                                    (C {(check_warning)} {(DQ ($ VSub_Name "$lfmixcrlf"))} 
                                      {(${ VSub_Name pfx) (_CRLF_mix_LF.err)}
                                    )
                                    (AndOr
                                      children: [
                                        (C {(check_warning)} {(DQ ($ VSub_Name "$lfmixcr"))} 
                                          {(${ VSub_Name pfx) (_LF_mix_CR.err)}
                                        )
                                        (C {(check_warning)} {(DQ ($ VSub_Name "$crlfnul"))} 
                                          {(${ VSub_Name pfx) (_CRLF_nul.err)}
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [680]
        )
      spids: [675 679]
    )
    (FuncDef
      name: commit_chk_wrnNNO
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:attr)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [893]
                    )
                  ]
                  spids: [893]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:aeol)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [901]
                    )
                  ]
                  spids: [901]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlf)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [909]
                    )
                  ]
                  spids: [909]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfwarn)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [917]
                    )
                  ]
                  spids: [917]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlfwarn)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [925]
                    )
                  ]
                  spids: [925]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfmixcrlf)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [933]
                    )
                  ]
                  spids: [933]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfmixcr)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [941]
                    )
                  ]
                  spids: [941]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlfnul)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [949]
                    )
                  ]
                  spids: [949]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pfx)
                  op: Equal
                  rhs: 
                    {(NNO_attr_) (${ VSub_Name attr) (_aeol_) (${ VSub_Name aeol) (_) 
                      (${ VSub_Name crlf)
                    }
                  spids: [957]
                )
              ]
              spids: [957]
            )
            (AndOr
              children: [
                (C {(create_gitattributes)} {(DQ ($ VSub_Name "$attr"))} {($ VSub_Name "$aeol")})
                (ForEach
                  iter_name: f
                  iter_words: [{(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)}]
                  do_arg_iter: False
                  body: 
                    (DoGroup
                      children: [
                        (AndOr
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:fname)
                                  op: Equal
                                  rhs: {(${ VSub_Name pfx) (_) ($ VSub_Name "$f") (.txt)}
                                  spids: [1007]
                                )
                              ]
                              spids: [1007]
                            )
                            (AndOr
                              children: [
                                (C {(cp)} {($ VSub_Name "$f")} {($ VSub_Name "$fname")})
                                (AndOr
                                  children: [
                                    (SimpleCommand
                                      words: [{(printf)} {(Z)}]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_DGreat
                                          fd: -1
                                          arg_word: {(DQ ($ VSub_Name "$fname"))}
                                          spids: [1031]
                                        )
                                      ]
                                    )
                                    (SimpleCommand
                                      words: [
                                        {(git)}
                                        {(-c)}
                                        {(core.autocrlf) (Lit_Other "=") ($ VSub_Name "$crlf")}
                                        {(add)}
                                        {($ VSub_Name "$fname")}
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 2
                                          arg_word: 
                                            {(DQ (${ VSub_Name pfx) (_) ($ VSub_Name "$f") (.err))}
                                          spids: [1051]
                                        )
                                      ]
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      spids: [1004 1062]
                    )
                  spids: [992 -1]
                )
              ]
              op_id: Op_DAmp
            )
            (C {(test_expect_success)} 
              {
                (DQ ("commit NNO files crlf=") ($ VSub_Name "$crlf") (" attr=") ($ VSub_Name "$attr") 
                  (" LF")
                )
              } {(SQ <"\n"> <"\t\tcheck_warning \"$lfwarn\" ${pfx}_LF.err\n"> <"\t">)}
            )
            (C {(test_expect_success)} 
              {
                (DQ ("commit NNO files attr=") ($ VSub_Name "$attr") (" aeol=") ($ VSub_Name "$aeol") 
                  (" crlf=") ($ VSub_Name "$crlf") (" CRLF")
                )
              } {(SQ <"\n"> <"\t\tcheck_warning \"$crlfwarn\" ${pfx}_CRLF.err\n"> <"\t">)}
            )
            (C {(test_expect_success)} 
              {
                (DQ ("commit NNO files attr=") ($ VSub_Name "$attr") (" aeol=") ($ VSub_Name "$aeol") 
                  (" crlf=") ($ VSub_Name "$crlf") (" CRLF_mix_LF")
                )
              } {(SQ <"\n"> <"\t\tcheck_warning \"$lfmixcrlf\" ${pfx}_CRLF_mix_LF.err\n"> <"\t">)}
            )
            (C {(test_expect_success)} 
              {
                (DQ ("commit NNO files attr=") ($ VSub_Name "$attr") (" aeol=") ($ VSub_Name "$aeol") 
                  (" crlf=") ($ VSub_Name "$crlf") (" LF_mix_cr")
                )
              } {(SQ <"\n"> <"\t\tcheck_warning \"$lfmixcr\" ${pfx}_LF_mix_CR.err\n"> <"\t">)}
            )
            (C {(test_expect_success)} 
              {
                (DQ ("commit NNO files attr=") ($ VSub_Name "$attr") (" aeol=") ($ VSub_Name "$aeol") 
                  (" crlf=") ($ VSub_Name "$crlf") (" CRLF_nul")
                )
              } {(SQ <"\n"> <"\t\tcheck_warning \"$crlfnul\" ${pfx}_CRLF_nul.err\n"> <"\t">)}
            )
          ]
          spids: [890]
        )
      spids: [885 889]
    )
    (FuncDef
      name: stats_ascii
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number "$1"))}
              arms: [
                (case_arm
                  pat_list: [{(LF)}]
                  action: [(C {(echo)} {(lf)})]
                  spids: [1181 1182 1190 -1]
                )
                (case_arm
                  pat_list: [{(CRLF)}]
                  action: [(C {(echo)} {(crlf)})]
                  spids: [1193 1194 1202 -1]
                )
                (case_arm
                  pat_list: [{(CRLF_mix_LF)}]
                  action: [(C {(echo)} {(mixed)})]
                  spids: [1205 1206 1214 -1]
                )
                (case_arm
                  pat_list: [{(LF_mix_CR)} {(CRLF_nul)} {(LF_nul)} {(CRLF_mix_CR)}]
                  action: [(C {(echo)} {(DQ (-text))})]
                  spids: [1217 1224 1234 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [(C {(echo)} {(error_invalid)} {($ VSub_Number "$1")})]
                  spids: [1237 1238 1248 -1]
                )
              ]
              spids: [1172 1178 1251]
            )
          ]
          spids: [1169]
        )
      spids: [1164 1168]
    )
    (FuncDef
      name: attr_ascii
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {($ VSub_Number "$1") (Lit_Comma ",") ($ VSub_Number "$2")}
              arms: [
                (case_arm
                  pat_list: [{(-text) (Lit_Comma ",") (Lit_Other "*")}]
                  action: [(C {(echo)} {(DQ (-text))})]
                  spids: [1284 1287 1295 -1]
                )
                (case_arm
                  pat_list: [{(text) (Lit_Comma ",")}]
                  action: [(C {(echo)} {(DQ (text))})]
                  spids: [1298 1300 1308 -1]
                )
                (case_arm
                  pat_list: [{(text) (Lit_Comma ",") (lf)}]
                  action: [(C {(echo)} {(DQ ("text eol=lf"))})]
                  spids: [1311 1314 1322 -1]
                )
                (case_arm
                  pat_list: [{(text) (Lit_Comma ",") (crlf)}]
                  action: [(C {(echo)} {(DQ ("text eol=crlf"))})]
                  spids: [1325 1328 1336 -1]
                )
                (case_arm
                  pat_list: [{(auto) (Lit_Comma ",")}]
                  action: [(C {(echo)} {(DQ ("text=auto"))})]
                  spids: [1339 1341 1349 -1]
                )
                (case_arm
                  pat_list: [{(auto) (Lit_Comma ",") (lf)}]
                  action: [(C {(echo)} {(DQ ("text=auto eol=lf"))})]
                  spids: [1352 1355 1363 -1]
                )
                (case_arm
                  pat_list: [{(auto) (Lit_Comma ",") (crlf)}]
                  action: [(C {(echo)} {(DQ ("text=auto eol=crlf"))})]
                  spids: [1366 1369 1377 -1]
                )
                (case_arm
                  pat_list: [{(lf) (Lit_Comma ",")}]
                  action: [(C {(echo)} {(DQ ("text eol=lf"))})]
                  spids: [1380 1382 1390 -1]
                )
                (case_arm
                  pat_list: [{(crlf) (Lit_Comma ",")}]
                  action: [(C {(echo)} {(DQ ("text eol=crlf"))})]
                  spids: [1393 1395 1403 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Comma ",")}]
                  action: [(C {(echo)} {(DQ )})]
                  spids: [1406 1407 1414 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [
                    (C {(echo)} {(invalid_attr)} {(DQ ($ VSub_Number "$1") (",") ($ VSub_Number "$2"))})
                  ]
                  spids: [1417 1418 1430 -1]
                )
              ]
              spids: [1275 1281 1433]
            )
          ]
          spids: [1272]
        )
      spids: [1267 1271]
    )
    (FuncDef
      name: check_files_in_repo
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:crlf)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [1446]
                )
              ]
              spids: [1446]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:attr)
                  op: Equal
                  rhs: {($ VSub_Number "$2")}
                  spids: [1450]
                )
              ]
              spids: [1450]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lfname)
                  op: Equal
                  rhs: {($ VSub_Number "$3")}
                  spids: [1454]
                )
              ]
              spids: [1454]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:crlfname)
                  op: Equal
                  rhs: {($ VSub_Number "$4")}
                  spids: [1458]
                )
              ]
              spids: [1458]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lfmixcrlf)
                  op: Equal
                  rhs: {($ VSub_Number "$5")}
                  spids: [1462]
                )
              ]
              spids: [1462]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lfmixcr)
                  op: Equal
                  rhs: {($ VSub_Number "$6")}
                  spids: [1466]
                )
              ]
              spids: [1466]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:crlfnul)
                  op: Equal
                  rhs: {($ VSub_Number "$7")}
                  spids: [1470]
                )
              ]
              spids: [1470]
            )
            (AndOr
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:pfx)
                      op: Equal
                      rhs: {(crlf_) (${ VSub_Name crlf) (_attr_) (${ VSub_Name attr) (_)}
                      spids: [1474]
                    )
                  ]
                  spids: [1474]
                )
                (AndOr
                  children: [
                    (C {(compare_files)} {($ VSub_Name "$lfname")} {(${ VSub_Name pfx) (LF.txt)})
                    (AndOr
                      children: [
                        (C {(compare_files)} {($ VSub_Name "$crlfname")} {(${ VSub_Name pfx) (CRLF.txt)})
                        (AndOr
                          children: [
                            (C {(compare_files)} {($ VSub_Name "$lfmixcrlf")} 
                              {(${ VSub_Name pfx) (CRLF_mix_LF.txt)}
                            )
                            (AndOr
                              children: [
                                (C {(compare_files)} {($ VSub_Name "$lfmixcr")} 
                                  {(${ VSub_Name pfx) (LF_mix_CR.txt)}
                                )
                                (C {(compare_files)} {($ VSub_Name "$crlfnul")} 
                                  {(${ VSub_Name pfx) (CRLF_nul.txt)}
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [1443]
        )
      spids: [1438 1442]
    )
    (FuncDef
      name: check_in_repo_NNO
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:attr)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1556]
                    )
                  ]
                  spids: [1556]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:aeol)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1564]
                    )
                  ]
                  spids: [1564]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlf)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1572]
                    )
                  ]
                  spids: [1572]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfname)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1580]
                    )
                  ]
                  spids: [1580]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlfname)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1588]
                    )
                  ]
                  spids: [1588]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfmixcrlf)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1596]
                    )
                  ]
                  spids: [1596]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfmixcr)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1604]
                    )
                  ]
                  spids: [1604]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlfnul)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1612]
                    )
                  ]
                  spids: [1612]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pfx)
                  op: Equal
                  rhs: 
                    {(NNO_attr_) (${ VSub_Name attr) (_aeol_) (${ VSub_Name aeol) (_) 
                      (${ VSub_Name crlf)
                    }
                  spids: [1620]
                )
              ]
              spids: [1620]
            )
            (C {(test_expect_success)} 
              {(DQ ("compare_files ") ($ VSub_Name "$lfname") (" ") (${ VSub_Name pfx) (_LF.txt))} {(SQ <"\n"> <"\t\tcompare_files $lfname ${pfx}_LF.txt\n"> <"\t">)}
            )
            (C {(test_expect_success)} 
              {
                (DQ ("compare_files ") ($ VSub_Name "$crlfname") (" ") (${ VSub_Name pfx) (_CRLF.txt))
              } {(SQ <"\n"> <"\t\tcompare_files $crlfname ${pfx}_CRLF.txt\n"> <"\t">)}
            )
            (C {(test_expect_success)} 
              {
                (DQ ("compare_files ") ($ VSub_Name "$lfmixcrlf") (" ") (${ VSub_Name pfx) 
                  (_CRLF_mix_LF.txt)
                )
              } {(SQ <"\n"> <"\t\tcompare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt\n"> <"\t">)}
            )
            (C {(test_expect_success)} 
              {
                (DQ ("compare_files ") ($ VSub_Name "$lfmixcr") (" ") (${ VSub_Name pfx) (_LF_mix_CR.txt))
              } {(SQ <"\n"> <"\t\tcompare_files $lfmixcr ${pfx}_LF_mix_CR.txt\n"> <"\t">)}
            )
            (C {(test_expect_success)} 
              {
                (DQ ("compare_files ") ($ VSub_Name "$crlfnul") (" ") (${ VSub_Name pfx) (_CRLF_nul.txt))
              } {(SQ <"\n"> <"\t\tcompare_files $crlfnul ${pfx}_CRLF_nul.txt\n"> <"\t">)}
            )
          ]
          spids: [1553]
        )
      spids: [1548 1552]
    )
    (FuncDef
      name: checkout_files
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:attr)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1740]
                    )
                  ]
                  spids: [1740]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ident)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1748]
                    )
                  ]
                  spids: [1748]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:aeol)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1755]
                    )
                  ]
                  spids: [1755]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlf)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1763]
                    )
                  ]
                  spids: [1763]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ceol)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1771]
                    )
                  ]
                  spids: [1771]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfname)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1779]
                    )
                  ]
                  spids: [1779]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlfname)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1787]
                    )
                  ]
                  spids: [1787]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfmixcrlf)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1795]
                    )
                  ]
                  spids: [1795]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lfmixcr)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1803]
                    )
                  ]
                  spids: [1803]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:crlfnul)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [1811]
                    )
                  ]
                  spids: [1811]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (AndOr
              children: [
                (C {(create_gitattributes)} {(DQ ($ VSub_Name "$attr"))} {($ VSub_Name "$ident")} 
                  {($ VSub_Name "$aeol")}
                )
                (AndOr
                  children: [
                    (C {(git)} {(config)} {(core.autocrlf)} {($ VSub_Name "$crlf")})
                    (AndOr
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:pfx)
                              op: Equal
                              rhs: 
                                {(eol_) (${ VSub_Name ceol) (_crlf_) (${ VSub_Name crlf) (_attr_) 
                                  (${ VSub_Name attr) (_)
                                }
                              spids: [1843]
                            )
                          ]
                          spids: [1843]
                        )
                        (ForEach
                          iter_name: f
                          iter_words: [{(LF)} {(CRLF)} {(LF_mix_CR)} {(CRLF_mix_LF)} {(LF_nul)}]
                          do_arg_iter: False
                          body: 
                            (DoGroup
                              children: [
                                (AndOr
                                  children: [
                                    (C {(rm)} {(crlf_false_attr__) ($ VSub_Name "$f") (.txt)})
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: (C {(test)} {(-z)} {(DQ ($ VSub_Name "$ceol"))})
                                              terminator: <Op_Semi ";">
                                            )
                                          ]
                                          action: [
                                            (C {(git)} {(checkout)} 
                                              {(crlf_false_attr__) ($ VSub_Name "$f") (.txt)}
                                            )
                                          ]
                                          spids: [-1 1901]
                                        )
                                      ]
                                      else_action: [
                                        (C {(git)} {(-c)} 
                                          {(core.eol) (Lit_Other "=") ($ VSub_Name "$ceol")} {(checkout)} {(crlf_false_attr__) ($ VSub_Name "$f") (.txt)}
                                        )
                                      ]
                                      spids: [1913 1931]
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              ]
                              spids: [1878 1934]
                            )
                          spids: [1866 -1]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (C {(test_expect_success)} 
              {
                (DQ ("ls-files --eol attr=") ($ VSub_Name "$attr") (" ") ($ VSub_Name "$ident") 
                  (" aeol=") ($ VSub_Name "$aeol") (" core.autocrlf=") ($ VSub_Name "$crlf") (" core.eol=") ($ VSub_Name "$ceol")
                )
              } 
              {
                (SQ <"\n"> <"\t\ttest_when_finished \"rm expect actual\" &&\n"> 
                  <"\t\tsort <<-EOF >expect &&\n"> <"\t\ti/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt\n"> 
                  <
"\t\ti/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt\n"
                  > <"\t\ti/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt\n"> 
                  <
"\t\ti/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt\n"
                  > 
                  <
"\t\ti/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt\n"
                  > 
                  <
"\t\ti/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt\n"
                  > <"\t\tEOF\n"> <"\t\tgit ls-files --eol crlf_false_attr__* |\n"> 
                  <"\t\tsed -e \"s/\t/ /g\" -e \"s/  */ /g\" |\n"> <"\t\tsort >actual &&\n"> <"\t\ttest_cmp expect actual\n"> <"\t">
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ("checkout attr=") ($ VSub_Name "$attr") (" ") ($ VSub_Name "$ident") (" aeol=") 
                  ($ VSub_Name "$aeol") (" core.autocrlf=") ($ VSub_Name "$crlf") (" core.eol=") ($ VSub_Name "$ceol") (" file=LF")
                )
              } 
              {
                (DQ ("\n") ("\t\tcompare_ws_file ") ($ VSub_Name "$pfx") (" ") ($ VSub_Name "$lfname") 
                  ("    crlf_false_attr__LF.txt\n") ("\t")
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ("checkout attr=") ($ VSub_Name "$attr") (" ") ($ VSub_Name "$ident") (" aeol=") 
                  ($ VSub_Name "$aeol") (" core.autocrlf=") ($ VSub_Name "$crlf") (" core.eol=") ($ VSub_Name "$ceol") (" file=CRLF")
                )
              } 
              {
                (DQ ("\n") ("\t\tcompare_ws_file ") ($ VSub_Name "$pfx") (" ") ($ VSub_Name "$crlfname") 
                  ("  crlf_false_attr__CRLF.txt\n") ("\t")
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ("checkout attr=") ($ VSub_Name "$attr") (" ") ($ VSub_Name "$ident") (" aeol=") 
                  ($ VSub_Name "$aeol") (" core.autocrlf=") ($ VSub_Name "$crlf") (" core.eol=") ($ VSub_Name "$ceol") (" file=CRLF_mix_LF")
                )
              } 
              {
                (DQ ("\n") ("\t\tcompare_ws_file ") ($ VSub_Name "$pfx") (" ") ($ VSub_Name "$lfmixcrlf") 
                  (" crlf_false_attr__CRLF_mix_LF.txt\n") ("\t")
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ("checkout attr=") ($ VSub_Name "$attr") (" ") ($ VSub_Name "$ident") (" aeol=") 
                  ($ VSub_Name "$aeol") (" core.autocrlf=") ($ VSub_Name "$crlf") (" core.eol=") ($ VSub_Name "$ceol") (" file=LF_mix_CR")
                )
              } 
              {
                (DQ ("\n") ("\t\tcompare_ws_file ") ($ VSub_Name "$pfx") (" ") ($ VSub_Name "$lfmixcr") 
                  ("   crlf_false_attr__LF_mix_CR.txt\n") ("\t")
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ("checkout attr=") ($ VSub_Name "$attr") (" ") ($ VSub_Name "$ident") (" aeol=") 
                  ($ VSub_Name "$aeol") (" core.autocrlf=") ($ VSub_Name "$crlf") (" core.eol=") ($ VSub_Name "$ceol") (" file=LF_nul")
                )
              } 
              {
                (DQ ("\n") ("\t\tcompare_ws_file ") ($ VSub_Name "$pfx") (" ") ($ VSub_Name "$crlfnul") 
                  ("   crlf_false_attr__LF_nul.txt\n") ("\t")
                )
              }
            )
          ]
          spids: [1737]
        )
      spids: [1732 1736]
    )
    (C {(test_expect_success)} {(SQ <"ls-files --eol -o Text/Binary">)} 
      {
        (SQ <"\n"> <"\ttest_when_finished \"rm expect actual TeBi_*\" &&\n"> 
          <"\tSTRT=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA &&\n"> <"\tSTR=$STRT$STRT$STRT$STRT &&\n"> <"\tprintf \"${STR}BBB\\001\" >TeBi_127_S &&\n"> 
          <"\tprintf \"${STR}BBBB\\001\">TeBi_128_S &&\n"> <"\tprintf \"${STR}BBB\\032\" >TeBi_127_E &&\n"> <"\tprintf \"\\032${STR}BBB\" >TeBi_E_127 &&\n"> 
          <"\tprintf \"${STR}BBBB\\000\">TeBi_128_N &&\n"> <"\tprintf \"${STR}BBB\\012\">TeBi_128_L &&\n"> <"\tprintf \"${STR}BBB\\015\">TeBi_127_C &&\n"> 
          <"\tprintf \"${STR}BB\\015\\012\" >TeBi_126_CL &&\n"> <"\tprintf \"${STR}BB\\015\\012\\015\" >TeBi_126_CLC &&\n"> <"\tsort <<-\\EOF >expect &&\n"> 
          <"\ti/ w/-text TeBi_127_S\n"> <"\ti/ w/none TeBi_128_S\n"> <"\ti/ w/none TeBi_127_E\n"> <"\ti/ w/-text TeBi_E_127\n"> 
          <"\ti/ w/-text TeBi_128_N\n"> <"\ti/ w/lf TeBi_128_L\n"> <"\ti/ w/-text TeBi_127_C\n"> <"\ti/ w/crlf TeBi_126_CL\n"> 
          <"\ti/ w/-text TeBi_126_CLC\n"> <"\tEOF\n"> <"\tgit ls-files --eol -o |\n"> <"\tsed -n -e \"/TeBi_/{s!attr/[\t]*!!g\n"> <"\ts!\t! !g\n"> 
          <"\ts!  *! !g\n"> <"\tp\n"> <"\t}\" | sort >actual &&\n"> <"\ttest_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"setup master">)} 
      {
        (SQ <"\n"> <"\techo >.gitattributes &&\n"> <"\tgit checkout -b master &&\n"> 
          <"\tgit add .gitattributes &&\n"> <"\tgit commit -m \"add .gitattributes\" \"\" &&\n"> 
          <
"\tprintf \"\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONE\\nLINETWO\\nLINETHREE\"     >LF &&\n"
          > 
          <
"\tprintf \"\\$Id: 0000000000000000000000000000000000000000 \\$\\r\\nLINEONE\\r\\nLINETWO\\r\\nLINETHREE\" >CRLF &&\n"
          > 
          <
"\tprintf \"\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONE\\r\\nLINETWO\\nLINETHREE\"   >CRLF_mix_LF &&\n"
          > 
          <
"\tprintf \"\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONE\\nLINETWO\\rLINETHREE\"     >LF_mix_CR &&\n"
          > 
          <
"\tprintf \"\\$Id: 0000000000000000000000000000000000000000 \\$\\r\\nLINEONE\\r\\nLINETWO\\rLINETHREE\"   >CRLF_mix_CR &&\n"
          > 
          <
"\tprintf \"\\$Id: 0000000000000000000000000000000000000000 \\$\\r\\nLINEONEQ\\r\\nLINETWO\\r\\nLINETHREE\" | q_to_nul >CRLF_nul &&\n"
          > 
          <
"\tprintf \"\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONEQ\\nLINETWO\\nLINETHREE\" | q_to_nul >LF_nul &&\n"
          > <"\tcreate_NNO_files CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF &&\n"> 
          <"\tgit -c core.autocrlf=false add NNO_*.txt &&\n"> <"\tgit commit -m \"mixed line endings\" &&\n"> <"\ttest_tick\n">
        )
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:warn_LF_CRLF)
          op: Equal
          rhs: {(DQ ("LF will be replaced by CRLF"))}
          spids: [2184]
        )
      ]
      spids: [2184]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:warn_CRLF_LF)
          op: Equal
          rhs: {(DQ ("CRLF will be replaced by LF"))}
          spids: [2189]
        )
      ]
      spids: [2189]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test_have_prereq)} {(NATIVE_CRLF)})]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:WILC) op:Equal rhs:{(LF_CRLF)} spids:[2213])]
              spids: [2213]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:WICL) op:Equal rhs:{(SQ )} spids:[2217])]
              spids: [2217]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:WAMIX) op:Equal rhs:{(LF_CRLF)} spids:[2220])]
              spids: [2220]
            )
          ]
          spids: [-1 2210]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:WILC) op:Equal rhs:{(SQ )} spids:[2226])]
          spids: [2226]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:WICL) op:Equal rhs:{(CRLF_LF)} spids:[2229])]
          spids: [2229]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:WAMIX) op:Equal rhs:{(CRLF_LF)} spids:[2233])]
          spids: [2233]
        )
      ]
      spids: [2223 2236]
    )
    (C {(test_expect_success)} {(SQ <"commit files empty attr">)} 
      {
        (SQ <"\n"> 
          <
"\tcommit_check_warn false \"\"     \"\"        \"\"        \"\"        \"\"        \"\" &&\n"
          > <"\tcommit_check_warn true  \"\"     \"LF_CRLF\" \"\"        \"LF_CRLF\" \"\"        \"\" &&\n"> 
          <
"\tcommit_check_warn input \"\"     \"\"        \"CRLF_LF\" \"CRLF_LF\" \"\"        \"\"\n"
          >
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"commit files attr=auto">)} 
      {
        (SQ <"\n"> 
          <
"\tcommit_check_warn false \"auto\" \"$WILC\"   \"$WICL\"   \"$WAMIX\"  \"\"        \"\" &&\n"
          > <"\tcommit_check_warn true  \"auto\" \"LF_CRLF\" \"\"        \"LF_CRLF\" \"\"        \"\" &&\n"> 
          <
"\tcommit_check_warn input \"auto\" \"\"        \"CRLF_LF\" \"CRLF_LF\" \"\"        \"\"\n"
          >
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"commit files attr=text">)} 
      {
        (SQ <"\n"> 
          <
"\tcommit_check_warn false \"text\" \"$WILC\"   \"$WICL\"   \"$WAMIX\"  \"$WILC\"   \"$WICL\"   &&\n"
          > 
          <
"\tcommit_check_warn true  \"text\" \"LF_CRLF\" \"\"        \"LF_CRLF\" \"LF_CRLF\" \"\"        &&\n"
          > <"\tcommit_check_warn input \"text\" \"\"        \"CRLF_LF\" \"CRLF_LF\" \"\"        \"CRLF_LF\"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"commit files attr=-text">)} 
      {
        (SQ <"\n"> 
          <
"\tcommit_check_warn false \"-text\" \"\"       \"\"        \"\"        \"\"        \"\" &&\n"
          > <"\tcommit_check_warn true  \"-text\" \"\"       \"\"        \"\"        \"\"        \"\" &&\n"> 
          <
"\tcommit_check_warn input \"-text\" \"\"       \"\"        \"\"        \"\"        \"\"\n"
          >
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"commit files attr=lf">)} 
      {
        (SQ <"\n"> 
          <
"\tcommit_check_warn false \"lf\"    \"\"       \"CRLF_LF\" \"CRLF_LF\"  \"\"       \"CRLF_LF\" &&\n"
          > 
          <
"\tcommit_check_warn true  \"lf\"    \"\"       \"CRLF_LF\" \"CRLF_LF\"  \"\"       \"CRLF_LF\" &&\n"
          > <"\tcommit_check_warn input \"lf\"    \"\"       \"CRLF_LF\" \"CRLF_LF\"  \"\"       \"CRLF_LF\"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"commit files attr=crlf">)} 
      {
        (SQ <"\n"> 
          <
"\tcommit_check_warn false \"crlf\" \"LF_CRLF\" \"\"        \"LF_CRLF\" \"LF_CRLF\" \"\" &&\n"
          > <"\tcommit_check_warn true  \"crlf\" \"LF_CRLF\" \"\"        \"LF_CRLF\" \"LF_CRLF\" \"\" &&\n"> 
          <
"\tcommit_check_warn input \"crlf\" \"LF_CRLF\" \"\"        \"LF_CRLF\" \"LF_CRLF\" \"\"\n"
          >
        )
      }
    )
    (C {(commit_chk_wrnNNO)} {(DQ )} {(DQ )} {(false)} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
    (C {(commit_chk_wrnNNO)} {(DQ )} {(DQ )} {(true)} {(LF_CRLF)} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
    (C {(commit_chk_wrnNNO)} {(DQ )} {(DQ )} {(input)} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
    (C {(commit_chk_wrnNNO)} {(DQ (auto))} {(DQ )} {(false)} {(DQ ($ VSub_Name "$WILC"))} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
    (C {(commit_chk_wrnNNO)} {(DQ (auto))} {(DQ )} {(true)} {(LF_CRLF)} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
    (C {(commit_chk_wrnNNO)} {(DQ (auto))} {(DQ )} {(input)} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
    (ForEach
      iter_name: crlf
      iter_words: [{(true)} {(false)} {(input)}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(commit_chk_wrnNNO)} {(-text)} {(DQ )} {($ VSub_Name "$crlf")} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
            (C {(commit_chk_wrnNNO)} {(-text)} {(lf)} {($ VSub_Name "$crlf")} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
            (C {(commit_chk_wrnNNO)} {(-text)} {(crlf)} {($ VSub_Name "$crlf")} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
            (C {(commit_chk_wrnNNO)} {(DQ )} {(lf)} {($ VSub_Name "$crlf")} {(DQ )} {(CRLF_LF)} {(CRLF_LF)} {(DQ )} 
              {(CRLF_LF)}
            )
            (C {(commit_chk_wrnNNO)} {(DQ )} {(crlf)} {($ VSub_Name "$crlf")} {(LF_CRLF)} {(DQ )} 
              {(LF_CRLF)} {(LF_CRLF)} {(DQ )}
            )
            (C {(commit_chk_wrnNNO)} {(auto)} {(lf)} {($ VSub_Name "$crlf")} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
            (C {(commit_chk_wrnNNO)} {(auto)} {(crlf)} {($ VSub_Name "$crlf")} {(LF_CRLF)} {(DQ )} {(DQ )} {(DQ )} {(DQ )})
            (C {(commit_chk_wrnNNO)} {(text)} {(lf)} {($ VSub_Name "$crlf")} {(DQ )} {(CRLF_LF)} {(CRLF_LF)} {(DQ )} 
              {(CRLF_LF)}
            )
            (C {(commit_chk_wrnNNO)} {(text)} {(crlf)} {($ VSub_Name "$crlf")} {(LF_CRLF)} {(DQ )} 
              {(LF_CRLF)} {(LF_CRLF)} {(DQ )}
            )
          ]
          spids: [2494 2702]
        )
      spids: [2487 -1]
    )
    (C {(commit_chk_wrnNNO)} {(DQ (text))} {(DQ )} {(false)} {(DQ ($ VSub_Name "$WILC"))} 
      {(DQ ($ VSub_Name "$WICL"))} {(DQ ($ VSub_Name "$WAMIX"))} {(DQ ($ VSub_Name "$WILC"))} {(DQ ($ VSub_Name "$WICL"))}
    )
    (C {(commit_chk_wrnNNO)} {(DQ (text))} {(DQ )} {(true)} {(LF_CRLF)} {(DQ )} {(LF_CRLF)} {(LF_CRLF)} {(DQ )})
    (C {(commit_chk_wrnNNO)} {(DQ (text))} {(DQ )} {(input)} {(DQ )} {(CRLF_LF)} {(CRLF_LF)} {(DQ )} 
      {(CRLF_LF)}
    )
    (C {(test_expect_success)} {(SQ <"commit NNO and cleanup">)} 
      {
        (SQ <"\n"> <"\tgit commit -m \"commit files on top of NNO\" &&\n"> <"\trm -f *.txt &&\n"> 
          <"\tgit -c core.autocrlf=false reset --hard\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"commit empty gitattribues">)} 
      {
        (SQ <"\n"> 
          <"\tcheck_files_in_repo false \"\"      LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul &&\n"> <"\tcheck_files_in_repo true  \"\"      LF LF   LF          LF_mix_CR CRLF_nul &&\n"> 
          <"\tcheck_files_in_repo input \"\"      LF LF   LF          LF_mix_CR CRLF_nul\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"commit text=auto">)} 
      {
        (SQ <"\n"> 
          <"\tcheck_files_in_repo false \"auto\"  LF LF   LF          LF_mix_CR CRLF_nul &&\n"> <"\tcheck_files_in_repo true  \"auto\"  LF LF   LF          LF_mix_CR CRLF_nul &&\n"> 
          <"\tcheck_files_in_repo input \"auto\"  LF LF   LF          LF_mix_CR CRLF_nul\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"commit text">)} 
      {
        (SQ <"\n"> <"\tcheck_files_in_repo false \"text\"  LF LF   LF          LF_mix_CR LF_nul &&\n"> 
          <"\tcheck_files_in_repo true  \"text\"  LF LF   LF          LF_mix_CR LF_nul &&\n"> <"\tcheck_files_in_repo input \"text\"  LF LF   LF          LF_mix_CR LF_nul\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"commit -text">)} 
      {
        (SQ <"\n"> 
          <"\tcheck_files_in_repo false \"-text\" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul &&\n"> <"\tcheck_files_in_repo true  \"-text\" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul &&\n"> 
          <"\tcheck_files_in_repo input \"-text\" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul\n">
        )
      }
    )
    (ForEach
      iter_name: crlf
      iter_words: [{(true)} {(false)} {(input)}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(check_in_repo_NNO)} {(DQ )} {(DQ )} {($ VSub_Name "$crlf")} {(LF)} {(CRLF)} {(CRLF_mix_LF)} 
              {(LF_mix_CR)} {(CRLF_nul)}
            )
            (C {(check_in_repo_NNO)} {(-text)} {(DQ )} {($ VSub_Name "$crlf")} {(LF)} {(CRLF)} 
              {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)}
            )
            (C {(check_in_repo_NNO)} {(-text)} {(lf)} {($ VSub_Name "$crlf")} {(LF)} {(CRLF)} 
              {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)}
            )
            (C {(check_in_repo_NNO)} {(-text)} {(crlf)} {($ VSub_Name "$crlf")} {(LF)} {(CRLF)} 
              {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)}
            )
            (C {(check_in_repo_NNO)} {(auto)} {(DQ )} {($ VSub_Name "$crlf")} {(LF)} {(CRLF)} 
              {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)}
            )
            (C {(check_in_repo_NNO)} {(auto)} {(lf)} {($ VSub_Name "$crlf")} {(LF)} {(CRLF)} {(CRLF_mix_LF)} 
              {(LF_mix_CR)} {(CRLF_nul)}
            )
            (C {(check_in_repo_NNO)} {(auto)} {(crlf)} {($ VSub_Name "$crlf")} {(LF)} {(CRLF)} 
              {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)}
            )
            (C {(check_in_repo_NNO)} {(text)} {(DQ )} {($ VSub_Name "$crlf")} {(LF)} {(LF)} {(LF)} 
              {(LF_mix_CR)} {(LF_nul)}
            )
            (C {(check_in_repo_NNO)} {(text)} {(lf)} {($ VSub_Name "$crlf")} {(LF)} {(LF)} {(LF)} 
              {(LF_mix_CR)} {(LF_nul)}
            )
            (C {(check_in_repo_NNO)} {(text)} {(crlf)} {($ VSub_Name "$crlf")} {(LF)} {(LF)} {(LF)} 
              {(LF_mix_CR)} {(LF_nul)}
            )
          ]
          spids: [2865 3066]
        )
      spids: [2858 -1]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test_have_prereq)} {(NATIVE_CRLF)})]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:MIX_CRLF_LF) op:Equal rhs:{(CRLF)} spids:[3125])]
              spids: [3125]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:MIX_LF_CR)
                  op: Equal
                  rhs: {(CRLF_mix_CR)}
                  spids: [3128]
                )
              ]
              spids: [3128]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:NL) op:Equal rhs:{(CRLF)} spids:[3131])]
              spids: [3131]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:LFNUL) op:Equal rhs:{(CRLF_nul)} spids:[3134])]
              spids: [3134]
            )
          ]
          spids: [-1 3123]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:MIX_CRLF_LF)
              op: Equal
              rhs: {(CRLF_mix_LF)}
              spids: [3139]
            )
          ]
          spids: [3139]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:MIX_LF_CR) op:Equal rhs:{(LF_mix_CR)} spids:[3142])]
          spids: [3142]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:NL) op:Equal rhs:{(LF)} spids:[3145])]
          spids: [3145]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:LFNUL) op:Equal rhs:{(LF_nul)} spids:[3148])]
          spids: [3148]
        )
      ]
      spids: [3137 3151]
    )
    (C {(export)} {(CRLF_MIX_LF_CR)} {(MIX)} {(NL)})
    (ForEach
      iter_name: id
      iter_words: [{(DQ )} {(ident)}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (ForEach
              iter_name: ceol
              iter_words: [{(lf)} {(crlf)} {(native)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (ForEach
                      iter_name: crlf
                      iter_words: [{(true)} {(false)} {(input)}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (C {(checkout_files)} {(-text)} {(DQ ($ VSub_Name "$id"))} {(DQ )} 
                              {(DQ ($ VSub_Name "$crlf"))} {(DQ ($ VSub_Name "$ceol"))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                            )
                            (C {(checkout_files)} {(-text)} {(DQ ($ VSub_Name "$id"))} {(DQ (lf))} 
                              {(DQ ($ VSub_Name "$crlf"))} {(DQ ($ VSub_Name "$ceol"))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                            )
                            (C {(checkout_files)} {(-text)} {(DQ ($ VSub_Name "$id"))} {(DQ (crlf))} 
                              {(DQ ($ VSub_Name "$crlf"))} {(DQ ($ VSub_Name "$ceol"))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                            )
                            (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name "$id"))} {(DQ (lf))} 
                              {(DQ ($ VSub_Name "$crlf"))} {(DQ ($ VSub_Name "$ceol"))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                            )
                            (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name "$id"))} {(DQ (crlf))} 
                              {(DQ ($ VSub_Name "$crlf"))} {(DQ ($ VSub_Name "$ceol"))} {(CRLF)} {(CRLF)} {(CRLF)} {(CRLF_mix_CR)} {(CRLF_nul)}
                            )
                            (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name "$id"))} {(DQ (lf))} 
                              {(DQ ($ VSub_Name "$crlf"))} {(DQ ($ VSub_Name "$ceol"))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                            )
                            (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name "$id"))} {(DQ (crlf))} 
                              {(DQ ($ VSub_Name "$crlf"))} {(DQ ($ VSub_Name "$ceol"))} {(CRLF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                            )
                          ]
                          spids: [3208 3443]
                        )
                      spids: [3200 -1]
                    )
                    (C {(checkout_files)} {(DQ )} {(DQ ($ VSub_Name "$id"))} {(DQ )} {(false)} 
                      {(DQ ($ VSub_Name "$ceol"))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                    )
                    (C {(checkout_files)} {(DQ )} {(DQ ($ VSub_Name "$id"))} {(DQ )} {(true)} 
                      {(DQ ($ VSub_Name "$ceol"))} {(CRLF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                    )
                    (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name "$id"))} {(DQ )} {(true)} 
                      {(DQ ($ VSub_Name "$ceol"))} {(CRLF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                    )
                    (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name "$id"))} {(DQ )} {(true)} 
                      {(DQ ($ VSub_Name "$ceol"))} {(CRLF)} {(CRLF)} {(CRLF)} {(CRLF_mix_CR)} {(CRLF_nul)}
                    )
                    (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name "$id"))} {(DQ )} {(input)} 
                      {(DQ ($ VSub_Name "$ceol"))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                    )
                    (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name "$id"))} {(DQ )} {(input)} 
                      {(DQ ($ VSub_Name "$ceol"))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
                    )
                  ]
                  spids: [3192 3637]
                )
              spids: [3184 -1]
            )
            (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name "$id"))} {(DQ )} {(false)} {(crlf)} {(CRLF)} 
              {(CRLF)} {(CRLF)} {(CRLF_mix_CR)} {(CRLF_nul)}
            )
            (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name "$id"))} {(DQ )} {(false)} {(lf)} {(LF)} 
              {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
            )
            (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name "$id"))} {(DQ )} {(false)} {(DQ )} 
              {($ VSub_Name "$NL")} {(CRLF)} {($ VSub_Name "$MIX_CRLF_LF")} {($ VSub_Name "$MIX_LF_CR")} {($ VSub_Name "$LFNUL")}
            )
            (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name "$id"))} {(DQ )} {(false)} {(native)} 
              {($ VSub_Name "$NL")} {(CRLF)} {($ VSub_Name "$MIX_CRLF_LF")} {($ VSub_Name "$MIX_LF_CR")} {($ VSub_Name "$LFNUL")}
            )
            (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name "$id"))} {(DQ )} {(false)} {(DQ )} 
              {($ VSub_Name "$NL")} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
            )
            (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name "$id"))} {(DQ )} {(false)} {(native)} 
              {($ VSub_Name "$NL")} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)}
            )
          ]
          spids: [3176 3809]
        )
      spids: [3170 -1]
    )
    (C {(test_expect_success)} {(SQ <"ls-files --eol -d -z">)} 
      {
        (SQ <"\n"> 
          <
"\trm crlf_false_attr__CRLF.txt crlf_false_attr__CRLF_mix_LF.txt crlf_false_attr__LF.txt .gitattributes &&\n"
          > <"\tcat >expect <<-\\EOF &&\n"> <"\ti/crlf w/ crlf_false_attr__CRLF.txt\n"> 
          <"\ti/lf w/ .gitattributes\n"> <"\ti/lf w/ crlf_false_attr__LF.txt\n"> <"\ti/mixed w/ crlf_false_attr__CRLF_mix_LF.txt\n"> <"\tEOF\n"> 
          <"\tgit ls-files --eol -d |\n"> <"\tsed -e \"s!attr/[^\t]*!!g\" -e \"s/\t/ /g\" -e \"s/  */ /g\" |\n"> <"\tsort >actual &&\n"> 
          <"\ttest_cmp expect actual\n">
        )
      }
    )
    (C {(test_done)})
  ]
)