(command.CommandList
  children: [
    (C {(Id.Lit_Other ':')})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sanitize_diff_raw)
          op: assign_op.Equal
          rhs: 
            {(SQ (Token id:Id.Lit_Chars val:'/^:/s/ ' span_id:5)) 
              (DQ (Id.Lit_Other '\\') ('(') ($ Id.VSub_DollarName '$_x40') (Id.Lit_Other '\\') (')')) (SQ (Token id:Id.Lit_Chars val:' ' span_id:15)) 
              (DQ (Id.Lit_Other '\\') ('(') ($ Id.VSub_DollarName '$_x40') (Id.Lit_Other '\\') (')')) (SQ (Token id:Id.Lit_Chars val:' \\([A-Z]\\)[0-9]*\t/ \\1 \\2 \\3#\t/' span_id:25))
            }
          spids: [3]
        )
      ]
    )
    (command.ShFunction
      name: compare_diff_raw
      body: 
        (command.BraceGroup
          children: [
            (command.Simple
              words: [{(sed)} {(-e)} {(DQ ($ Id.VSub_DollarName '$sanitize_diff_raw'))}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Less val:'<' span_id:61)
                  fd: -1
                  arg_word: {(DQ ($ Id.VSub_Number '$1'))}
                )
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:66)
                  fd: -1
                  arg_word: {(.tmp-1)}
                )
              ]
            )
            (command.Simple
              words: [{(sed)} {(-e)} {(DQ ($ Id.VSub_DollarName '$sanitize_diff_raw'))}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Less val:'<' span_id:78)
                  fd: -1
                  arg_word: {(DQ ($ Id.VSub_Number '$2'))}
                )
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:83)
                  fd: -1
                  arg_word: {(.tmp-2)}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {(test_cmp)} {(.tmp-1)} {(.tmp-2)}) (C {(rm)} {(-f)} {(.tmp-1)} {(.tmp-2)})]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sanitize_diff_raw_z)
          op: assign_op.Equal
          rhs: 
            {(SQ (Token id:Id.Lit_Chars val:'/^:/s/ ' span_id:108)) 
              (DQ ($ Id.VSub_DollarName '$_x40')) (SQ (Token id:Id.Lit_Chars val:' ' span_id:114)) (DQ ($ Id.VSub_DollarName '$_x40')) 
              (SQ (Token id:Id.Lit_Chars val:' \\([A-Z]\\)[0-9]*$/ X X \\1#/' span_id:120))
            }
          spids: [106]
        )
      ]
    )
    (command.ShFunction
      name: compare_diff_raw_z
      body: 
        (command.BraceGroup
          children: [
            (command.Pipeline
              children: [
                (command.Simple
                  words: [
                    {(perl)}
                    {(-pe)}
                    {(SQ (Token id:Id.Lit_Chars val:'y/\\000/\\012/' span_id:153))}
                  ]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Less val:'<' span_id:156)
                      fd: -1
                      arg_word: {(DQ ($ Id.VSub_Number '$1'))}
                    )
                  ]
                )
                (command.Simple
                  words: [{(sed)} {(-e)} {(DQ ($ Id.VSub_DollarName '$sanitize_diff_raw_z'))}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:171)
                      fd: -1
                      arg_word: {(.tmp-1)}
                    )
                  ]
                )
              ]
              negated: F
            )
            (command.Pipeline
              children: [
                (command.Simple
                  words: [
                    {(perl)}
                    {(-pe)}
                    {(SQ (Token id:Id.Lit_Chars val:'y/\\000/\\012/' span_id:180))}
                  ]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Less val:'<' span_id:183)
                      fd: -1
                      arg_word: {(DQ ($ Id.VSub_Number '$2'))}
                    )
                  ]
                )
                (command.Simple
                  words: [{(sed)} {(-e)} {(DQ ($ Id.VSub_DollarName '$sanitize_diff_raw_z'))}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:198)
                      fd: -1
                      arg_word: {(.tmp-2)}
                    )
                  ]
                )
              ]
              negated: F
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {(test_cmp)} {(.tmp-1)} {(.tmp-2)}) (C {(rm)} {(-f)} {(.tmp-1)} {(.tmp-2)})]
            )
          ]
        )
    )
    (command.ShFunction
      name: compare_diff_patch
      body: 
        (command.BraceGroup
          children: [
            (command.Simple
              words: [
                {(sed)}
                {(-e)}
                {
                  (SQ (Token id:Id.Lit_Chars val:'\n' span_id:242) 
                    (Token
                      id: Id.Lit_Chars
                      val: '\t/^[dis]*imilarity index [0-9]*%$/d\n'
                      span_id: 243
                    ) (Token id:Id.Lit_Chars val:'\t/^index [0-9a-f]*\\.\\.[0-9a-f]/d\n' span_id:244) 
                    (Token id:Id.Lit_Chars val:'    ' span_id:245)
                  )
                }
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Less val:'<' span_id:248)
                  fd: -1
                  arg_word: {(DQ ($ Id.VSub_Number '$1'))}
                )
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:253)
                  fd: -1
                  arg_word: {(.tmp-1)}
                )
              ]
            )
            (command.Simple
              words: [
                {(sed)}
                {(-e)}
                {
                  (SQ (Token id:Id.Lit_Chars val:'\n' span_id:262) 
                    (Token
                      id: Id.Lit_Chars
                      val: '\t/^[dis]*imilarity index [0-9]*%$/d\n'
                      span_id: 263
                    ) (Token id:Id.Lit_Chars val:'\t/^index [0-9a-f]*\\.\\.[0-9a-f]/d\n' span_id:264) 
                    (Token id:Id.Lit_Chars val:'    ' span_id:265)
                  )
                }
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Less val:'<' span_id:268)
                  fd: -1
                  arg_word: {(DQ ($ Id.VSub_Number '$2'))}
                )
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:273)
                  fd: -1
                  arg_word: {(.tmp-2)}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {(test_cmp)} {(.tmp-1)} {(.tmp-2)}) (C {(rm)} {(-f)} {(.tmp-1)} {(.tmp-2)})]
            )
          ]
        )
    )
  ]
)