(CommandList
  children: [
    (Sentence
      child: 
        (C {(.)} 
          {
            (DQ 
              (BracedVarSub
                token: <VSub_Name srcdir>
                suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(.)})
                spids: [47 51]
              ) (/tests/init.sh)
            )
          }
        )
      terminator: <Op_Semi ';'>
    )
    (C {(path_prepend_)} {(./src)})
    (C {(print_ver_)} {(chcon)} {(cp)} {(ls)} {(mv)} {(stat)})
    (C {(require_root_)})
    (C {(require_selinux_)})
    (C {(skip_if_mcstransd_is_running_)})
    (AndOr ops:[Op_DPipe] children:[(C {(touch)} {(f)}) (C {(framework_failure_)})])
    (AndOr
      ops: [Op_DPipe]
      children: [(C {(mkdir)} {(d)} {(s1)} {(s2)}) (C {(framework_failure_)})]
    )
    (C {(mkfifo_or_skip_)} {(p)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ctx)
          op: Equal
          rhs: {(root) (Lit_Other ':') (object_r) (Lit_Other ':') (tmp_t) (Lit_Other ':') (s0)}
          spids: [112]
        )
      ]
      spids: [112]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(chcon)} {($ VSub_Name '$ctx')} {(f)} {(d)} {(p)})
        (C {(skip_)} {(SQ <'"chcon '>) ($ VSub_Name '$ctx') (SQ <' ..." failed'>)})
      ]
    )
    (ForEach
      iter_name: i
      iter_words: [{(d)} {(f)} {(p)}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:c)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(ls)} {(-dogZ)} {($ VSub_Name '$i')})
                                      (C {(cut)} {(-d) (SQ <' '>)} {(-f3)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [166 181]
                          )
                        }
                      spids: [165]
                    )
                  ]
                  spids: [165]
                )
              terminator: <Op_Semi ';'>
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(x) ($ VSub_Name '$c')} {(Lit_Other '=')} {(x) ($ VSub_Name '$ctx')})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[196])]
                  spids: [196]
                )
              ]
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:c)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (C {(stat)} {(--printf)} {(Lit_Other '%') (C)} {($ VSub_Name '$i')})
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [201 210]
                          )
                        }
                      spids: [200]
                    )
                  ]
                  spids: [200]
                )
              terminator: <Op_Semi ';'>
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(x) ($ VSub_Name '$c')} {(Lit_Other '=')} {(x) ($ VSub_Name '$ctx')})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[225])]
                  spids: [225]
                )
              ]
            )
          ]
          spids: [162 228]
        )
      spids: [154 160]
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:c)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Pipeline
                            children: [(C {(ls)} {(-l)} {(f)}) (C {(cut)} {(-c11)})]
                            negated: F
                          )
                        ]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [235 245]
                  )
                }
              spids: [234]
            )
          ]
          spids: [234]
        )
      terminator: <Op_Semi ';'>
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {(DQ ($ VSub_Name '$c'))} {(Lit_Other '=')} {(.)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[260])]
          spids: [260]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(test)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(getenforce)})])
                        left_token: <Left_CommandSub '$('>
                        spids: [275 277]
                      )
                    )
                  } {(Lit_Other '=')} {(Enforcing)}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(cp)} {(--context) (Lit_Other '=') (SQ <invalid-selinux-context>)} {(f)} {(f.cp)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[302])]
                  spids: [302]
                )
              ]
            )
          ]
          spids: [16777215 285]
        )
      ]
      spids: [16777215 305]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(cp)} {(-r)} {(--preserve) (Lit_Other '=') (all)} {(d)} {(f)} {(p)} {(s1)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[329])]
          spids: [329]
        )
      ]
    )
    (ForEach
      iter_name: i
      iter_words: [{(d)} {(f)} {(p)}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:c)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (C {(stat)} {(--printf)} {(Lit_Other '%') (C)} 
                                    {(s1/) ($ VSub_Name '$i')}
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [349 359]
                          )
                        }
                      spids: [348]
                    )
                  ]
                  spids: [348]
                )
              terminator: <Op_Semi ';'>
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(x) ($ VSub_Name '$c')} {(Lit_Other '=')} {(x) ($ VSub_Name '$ctx')})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[374])]
                  spids: [374]
                )
              ]
            )
          ]
          spids: [345 377]
        )
      spids: [337 343]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(mv)} {(d)} {(f)} {(p)} {(s2)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[395])]
          spids: [395]
        )
      ]
    )
    (ForEach
      iter_name: i
      iter_words: [{(d)} {(f)} {(p)}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:c)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (C {(stat)} {(--printf)} {(Lit_Other '%') (C)} 
                                    {(s2/) ($ VSub_Name '$i')}
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [415 425]
                          )
                        }
                      spids: [414]
                    )
                  ]
                  spids: [414]
                )
              terminator: <Op_Semi ';'>
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(x) ($ VSub_Name '$c')} {(Lit_Other '=')} {(x) ($ VSub_Name '$ctx')})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[440])]
                  spids: [440]
                )
              ]
            )
          ]
          spids: [411 443]
        )
      spids: [403 409]
    )
    (C {(Exit)} {($ VSub_Name '$fail')})
  ]
)