(CommandList
  children: [
    (C {(export)} {(Lit_VarLike 'DESTTREE=') (/usr)})
    (C {(export)} {(Lit_VarLike 'INSDESTTREE=') (DQ )})
    (C {(export)} {(Lit_VarLike '_E_EXEDESTTREE_=') (DQ )})
    (C {(export)} {(Lit_VarLike '_E_DOCDESTTREE_=') (DQ )})
    (C {(export)} {(Lit_VarLike 'INSOPTIONS=') (DQ (-m0644))})
    (C {(export)} {(Lit_VarLike 'EXEOPTIONS=') (DQ (-m0755))})
    (C {(export)} {(Lit_VarLike 'LIBOPTIONS=') (DQ (-m0644))})
    (C {(export)} {(Lit_VarLike 'DIROPTIONS=') (DQ (-m0755))})
    (C {(export)} {(Lit_VarLike 'MOPREFIX=') (${ VSub_Name PN)})
    (C {(export)} {(Lit_VarLike 'PORTAGE_DOCOMPRESS_SIZE_LIMIT=') (DQ (128))})
    (Assignment
      keyword: Assign_Declare
      flags: [-a]
      pairs: [
        (assign_pair
          lhs: (LhsName name:PORTAGE_DOCOMPRESS)
          op: Equal
          rhs: 
            {
              (ArrayLiteralPart
                words: [
                  (BracedWordTree
                    parts: [(/usr/share/) (BracedAltPart words:[{(doc)} {(info)} {(man)}])]
                  )
                ]
              )
            }
          spids: [82]
        )
      ]
      spids: [78]
    )
    (Assignment
      keyword: Assign_Declare
      flags: [-a]
      pairs: [
        (assign_pair
          lhs: (LhsName name:PORTAGE_DOCOMPRESS_SKIP)
          op: Equal
          rhs: {(ArrayLiteralPart words:[{(/usr/share/doc/) (${ VSub_Name PF) (/html)}])}
          spids: [100]
        )
      ]
      spids: [96]
    )
    (FuncDef
      name: into
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                          {(Lit_Other '=') (Lit_Other '=')} {(DQ (/))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(export)} {(Lit_VarLike 'DESTTREE=') (DQ )})]
                  spids: [16777215 137]
                )
              ]
              else_action: [
                (C {(export)} {(Lit_VarLike 'DESTTREE=') ($ VSub_Number '$1')})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (Pipeline children:[(C {(___eapi_has_prefix_variables)})] negated:T)
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ED)
                              op: Equal
                              rhs: {(${ VSub_Name D)}
                              spids: [168]
                            )
                          ]
                          spids: [166]
                        )
                      ]
                      spids: [16777215 163]
                    )
                  ]
                  spids: [16777215 174]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} 
                              {(DQ (${ VSub_Name ED) (${ VSub_Name DESTTREE))} {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(install)} {(-d)} {(DQ (${ VSub_Name ED) (${ VSub_Name DESTTREE))})
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ret)
                              op: Equal
                              rhs: {($ VSub_QMark '$?')}
                              spids: [216]
                            )
                          ]
                          spids: [214]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_ne
                                          left: {($ VSub_Name '$ret')}
                                          right: {(0)}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(__helpers_die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [240 245]
                                      ) (' failed')
                                    )
                                  }
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {($ VSub_Name '$ret')}
                                )
                              ]
                              spids: [16777215 234]
                            )
                          ]
                          spids: [16777215 255]
                        )
                      ]
                      spids: [16777215 197]
                    )
                  ]
                  spids: [16777215 258]
                )
              ]
              spids: [147 261]
            )
          ]
          spids: [116]
        )
      spids: [112 115]
    )
    (FuncDef
      name: insinto
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                          {(Lit_Other '=') (Lit_Other '=')} {(DQ (/))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(export)} {(Lit_VarLike 'INSDESTTREE=') (DQ )})]
                  spids: [16777215 291]
                )
              ]
              else_action: [
                (C {(export)} {(Lit_VarLike 'INSDESTTREE=') ($ VSub_Number '$1')})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (Pipeline children:[(C {(___eapi_has_prefix_variables)})] negated:T)
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ED)
                              op: Equal
                              rhs: {(${ VSub_Name D)}
                              spids: [322]
                            )
                          ]
                          spids: [320]
                        )
                      ]
                      spids: [16777215 317]
                    )
                  ]
                  spids: [16777215 328]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} 
                              {(DQ (${ VSub_Name ED) (${ VSub_Name INSDESTTREE))} {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(install)} {(-d)} {(DQ (${ VSub_Name ED) (${ VSub_Name INSDESTTREE))})
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ret)
                              op: Equal
                              rhs: {($ VSub_QMark '$?')}
                              spids: [370]
                            )
                          ]
                          spids: [368]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_ne
                                          left: {($ VSub_Name '$ret')}
                                          right: {(0)}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(__helpers_die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [394 399]
                                      ) (' failed')
                                    )
                                  }
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {($ VSub_Name '$ret')}
                                )
                              ]
                              spids: [16777215 388]
                            )
                          ]
                          spids: [16777215 409]
                        )
                      ]
                      spids: [16777215 351]
                    )
                  ]
                  spids: [16777215 412]
                )
              ]
              spids: [301 415]
            )
          ]
          spids: [270]
        )
      spids: [266 269]
    )
    (FuncDef
      name: exeinto
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                          {(Lit_Other '=') (Lit_Other '=')} {(DQ (/))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(export)} {(Lit_VarLike '_E_EXEDESTTREE_=') (DQ )})]
                  spids: [16777215 445]
                )
              ]
              else_action: [
                (C {(export)} {(Lit_VarLike '_E_EXEDESTTREE_=') (DQ ($ VSub_Number '$1'))})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (Pipeline children:[(C {(___eapi_has_prefix_variables)})] negated:T)
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ED)
                              op: Equal
                              rhs: {(${ VSub_Name D)}
                              spids: [478]
                            )
                          ]
                          spids: [476]
                        )
                      ]
                      spids: [16777215 473]
                    )
                  ]
                  spids: [16777215 484]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} 
                              {(DQ (${ VSub_Name ED) (${ VSub_Name _E_EXEDESTTREE_))} {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(install)} {(-d)} {(DQ (${ VSub_Name ED) (${ VSub_Name _E_EXEDESTTREE_))})
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ret)
                              op: Equal
                              rhs: {($ VSub_QMark '$?')}
                              spids: [526]
                            )
                          ]
                          spids: [524]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_ne
                                          left: {($ VSub_Name '$ret')}
                                          right: {(0)}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(__helpers_die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [550 555]
                                      ) (' failed')
                                    )
                                  }
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {($ VSub_Name '$ret')}
                                )
                              ]
                              spids: [16777215 544]
                            )
                          ]
                          spids: [16777215 565]
                        )
                      ]
                      spids: [16777215 507]
                    )
                  ]
                  spids: [16777215 568]
                )
              ]
              spids: [455 571]
            )
          ]
          spids: [424]
        )
      spids: [420 423]
    )
    (FuncDef
      name: docinto
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                          {(Lit_Other '=') (Lit_Other '=')} {(DQ (/))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(export)} {(Lit_VarLike '_E_DOCDESTTREE_=') (DQ )})]
                  spids: [16777215 601]
                )
              ]
              else_action: [
                (C {(export)} {(Lit_VarLike '_E_DOCDESTTREE_=') (DQ ($ VSub_Number '$1'))})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (Pipeline children:[(C {(___eapi_has_prefix_variables)})] negated:T)
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ED)
                              op: Equal
                              rhs: {(${ VSub_Name D)}
                              spids: [634]
                            )
                          ]
                          spids: [632]
                        )
                      ]
                      spids: [16777215 629]
                    )
                  ]
                  spids: [16777215 640]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} 
                              {
                                (DQ (${ VSub_Name ED) (usr/share/doc/) (${ VSub_Name PF) (/) 
                                  (${ VSub_Name _E_DOCDESTTREE_)
                                )
                              } {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(install)} {(-d)} 
                          {
                            (DQ (${ VSub_Name ED) (usr/share/doc/) (${ VSub_Name PF) (/) 
                              (${ VSub_Name _E_DOCDESTTREE_)
                            )
                          }
                        )
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ret)
                              op: Equal
                              rhs: {($ VSub_QMark '$?')}
                              spids: [692]
                            )
                          ]
                          spids: [690]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_ne
                                          left: {($ VSub_Name '$ret')}
                                          right: {(0)}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(__helpers_die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [716 721]
                                      ) (' failed')
                                    )
                                  }
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {($ VSub_Name '$ret')}
                                )
                              ]
                              spids: [16777215 710]
                            )
                          ]
                          spids: [16777215 731]
                        )
                      ]
                      spids: [16777215 668]
                    )
                  ]
                  spids: [16777215 734]
                )
              ]
              spids: [611 737]
            )
          ]
          spids: [580]
        )
      spids: [576 579]
    )
    (FuncDef
      name: insopts
      body: 
        (BraceGroup
          children: [
            (C {(export)} {(Lit_VarLike 'INSOPTIONS=') (DQ ($ VSub_At '$@'))})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(has)} {(-s)} {(${ VSub_Name INSOPTIONS)})
                (C {(die)} {(DQ ('Never call insopts() with -s'))})
              ]
            )
          ]
          spids: [746]
        )
      spids: [742 745]
    )
    (FuncDef
      name: diropts
      body: 
        (BraceGroup
          children: [(C {(export)} {(Lit_VarLike 'DIROPTIONS=') (DQ ($ VSub_At '$@'))})]
          spids: [785]
        )
      spids: [781 784]
    )
    (FuncDef
      name: exeopts
      body: 
        (BraceGroup
          children: [
            (C {(export)} {(Lit_VarLike 'EXEOPTIONS=') (DQ ($ VSub_At '$@'))})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(has)} {(-s)} {(${ VSub_Name EXEOPTIONS)})
                (C {(die)} {(DQ ('Never call exeopts() with -s'))})
              ]
            )
          ]
          spids: [802]
        )
      spids: [798 801]
    )
    (FuncDef
      name: libopts
      body: 
        (BraceGroup
          children: [
            (C {(export)} {(Lit_VarLike 'LIBOPTIONS=') (DQ ($ VSub_At '$@'))})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(has)} {(-s)} {(${ VSub_Name LIBOPTIONS)})
                (C {(die)} {(DQ ('Never call libopts() with -s'))})
              ]
            )
          ]
          spids: [841]
        )
      spids: [837 840]
    )
    (FuncDef
      name: docompress
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(___eapi_has_docompress)})
                (C {(die)} {(DQ ("'docompress' not supported in this EAPI"))})
              ]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:f) op:Equal spids:[897])
                (assign_pair lhs:(LhsName name:g) op:Equal spids:[899])
              ]
              spids: [895]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobEqual
                              left: {($ VSub_Number '$1')}
                              right: {(DQ (-x))}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(shift)})
                    (ForEach
                      iter_name: f
                      do_arg_iter: T
                      body: 
                        (DoGroup
                          children: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:f)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (C {(__strip_duplicate_slashes)} 
                                                    {(DQ (${ VSub_Name f))}
                                                  )
                                                ]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [932 940]
                                          )
                                        }
                                      spids: [931]
                                    )
                                  ]
                                  spids: [931]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:f)
                                  op: Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name f>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VOp1_Percent
                                            arg_word: {(Lit_Slash /)}
                                          )
                                        spids: [944 948]
                                      )
                                    }
                                  spids: [943]
                                )
                              ]
                              spids: [943]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobEqual
                                      left: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name f>
                                            suffix_op: 
                                              (Slice
                                                begin: (ArithWord w:{(Lit_Digits 0)})
                                                length: (ArithWord w:{(Lit_Digits 1)})
                                              )
                                            spids: [953 959]
                                          )
                                        }
                                      right: {(/)}
                                    )
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:f)
                                      op: Equal
                                      rhs: {(DQ (/) (${ VSub_Name f))}
                                      spids: [969]
                                    )
                                  ]
                                  spids: [969]
                                )
                              ]
                            )
                            (ForEach
                              iter_name: g
                              iter_words: [
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name PORTAGE_DOCOMPRESS_SKIP>
                                      bracket_op: (WholeArray op_id:Lit_At)
                                      spids: [985 990]
                                    )
                                  )
                                }
                              ]
                              do_arg_iter: F
                              body: 
                                (DoGroup
                                  children: [
                                    (AndOr
                                      ops: [Op_DAmp]
                                      children: [
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobEqual
                                              left: {(${ VSub_Name f)}
                                              right: {(DQ (${ VSub_Name g))}
                                            )
                                        )
                                        (ControlFlow
                                          token: <ControlFlow_Continue continue>
                                          arg_word: {(2)}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [994 1020]
                                )
                              spids: [983 992]
                            )
                            (C 
                              {(PORTAGE_DOCOMPRESS_SKIP) (Lit_Other '[') 
                                (BracedVarSub
                                  token: <VSub_Name PORTAGE_DOCOMPRESS_SKIP>
                                  prefix_op: VSub_Pound
                                  bracket_op: (WholeArray op_id:Lit_At)
                                  spids: [1025 1031]
                                ) (Lit_Other ']') (Lit_Other '=') (${ VSub_Name f)
                              }
                            )
                          ]
                          spids: [928 1039]
                        )
                      spids: [16777215 16777215]
                    )
                  ]
                  spids: [16777215 917]
                )
              ]
              else_action: [
                (ForEach
                  iter_name: f
                  do_arg_iter: T
                  body: 
                    (DoGroup
                      children: [
                        (Sentence
                          child: 
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:f)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (C {(__strip_duplicate_slashes)} {(DQ (${ VSub_Name f))})
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [1054 1062]
                                      )
                                    }
                                  spids: [1053]
                                )
                              ]
                              spids: [1053]
                            )
                          terminator: <Op_Semi ';'>
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:f)
                              op: Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name f>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_Percent
                                        arg_word: {(Lit_Slash /)}
                                      )
                                    spids: [1066 1070]
                                  )
                                }
                              spids: [1065]
                            )
                          ]
                          spids: [1065]
                        )
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobEqual
                                  left: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name f>
                                        suffix_op: 
                                          (Slice
                                            begin: (ArithWord w:{(Lit_Digits 0)})
                                            length: (ArithWord w:{(Lit_Digits 1)})
                                          )
                                        spids: [1075 1081]
                                      )
                                    }
                                  right: {(/)}
                                )
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:f)
                                  op: Equal
                                  rhs: {(DQ (/) (${ VSub_Name f))}
                                  spids: [1091]
                                )
                              ]
                              spids: [1091]
                            )
                          ]
                        )
                        (ForEach
                          iter_name: g
                          iter_words: [
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name PORTAGE_DOCOMPRESS>
                                  bracket_op: (WholeArray op_id:Lit_At)
                                  spids: [1107 1112]
                                )
                              )
                            }
                          ]
                          do_arg_iter: F
                          body: 
                            (DoGroup
                              children: [
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobEqual
                                          left: {(${ VSub_Name f)}
                                          right: {(DQ (${ VSub_Name g))}
                                        )
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Continue continue>
                                      arg_word: {(2)}
                                    )
                                  ]
                                )
                              ]
                              spids: [1116 1142]
                            )
                          spids: [1105 1114]
                        )
                        (C 
                          {(PORTAGE_DOCOMPRESS) (Lit_Other '[') 
                            (BracedVarSub
                              token: <VSub_Name PORTAGE_DOCOMPRESS>
                              prefix_op: VSub_Pound
                              bracket_op: (WholeArray op_id:Lit_At)
                              spids: [1147 1153]
                            ) (Lit_Other ']') (Lit_Other '=') (${ VSub_Name f)
                          }
                        )
                      ]
                      spids: [1050 1161]
                    )
                  spids: [16777215 16777215]
                )
              ]
              spids: [1042 1164]
            )
          ]
          spids: [880]
        )
      spids: [876 879]
    )
    (FuncDef
      name: useq
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(has)} {($ VSub_Name '$EBUILD_PHASE')} {(prerm)} {(postrm)})
                (C {(eqawarn)} 
                  {(DQ ("QA Notice: The 'useq' function is deprecated (replaced by 'use')"))}
                )
              ]
            )
            (C {(use)} {(${ VSub_Number 1)})
          ]
          spids: [1173]
        )
      spids: [1169 1172]
    )
    (FuncDef
      name: usev
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [(Sentence child:(C {(use)} {(${ VSub_Number 1)}) terminator:<Op_Semi ';'>)]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Number 1>
                            suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('!')})
                            spids: [1226 1230]
                          )
                        )
                      }
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [16777215 1220]
                )
              ]
              spids: [16777215 1239]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [1208]
        )
      spids: [1204 1207]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_usex)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: usex
              body: 
                (BraceGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(use)} {(DQ ($ VSub_Number '$1'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(echo)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Number 2>
                                    suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(yes)})
                                    spids: [1279 1283]
                                  ) ($ VSub_Number '$4')
                                )
                              }
                            )
                          ]
                          spids: [16777215 1273]
                        )
                      ]
                      else_action: [
                        (C {(echo)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Number 3>
                                suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(no)})
                                spids: [1294 1298]
                              ) ($ VSub_Number '$5')
                            )
                          }
                        )
                      ]
                      spids: [1288 1303]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [1261]
                )
              spids: [1257 1260]
            )
          ]
          spids: [16777215 1254]
        )
      ]
      spids: [16777215 1313]
    )
    (FuncDef
      name: use
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:u)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [1325]
                )
              ]
              spids: [1323]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:found) op:Equal rhs:{(0)} spids:[1331])]
              spids: [1329]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name u>
                                    suffix_op: 
                                      (Slice
                                        begin: (ArithWord w:{(Lit_Digits 0)})
                                        length: (ArithWord w:{(Lit_Digits 1)})
                                      )
                                    spids: [1344 1350]
                                  )
                                }
                              right: {(DQ ('!'))}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:u)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name u>
                                suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 1)}))
                                spids: [1366 1370]
                              )
                            }
                          spids: [1365]
                        )
                      ]
                      spids: [1365]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:found) op:Equal rhs:{(1)} spids:[1373])]
                      spids: [1373]
                    )
                  ]
                  spids: [16777215 1362]
                )
              ]
              spids: [16777215 1377]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobEqual
                              left: {($ VSub_Name '$EBUILD_PHASE')}
                              right: {(depend)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(true)})]
                  spids: [16777215 1395]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: (BoolUnary op_id:BoolUnary_n child:{($ VSub_Name '$PORTAGE_IUSE')})
                              right: 
                                (LogicalAnd
                                  left: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {($ VSub_Name '$EBUILD_PHASE')}
                                    )
                                  right: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {($ VSub_Name '$PORTAGE_INTERNAL_CALLER')}
                                    )
                                )
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (LogicalNot
                                      child: 
                                        (BoolBinary
                                          op_id: BoolBinary_EqualTilde
                                          left: {($ VSub_Name '$u')}
                                          right: {($ VSub_Name '$PORTAGE_IUSE')}
                                        )
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (LogicalNot
                                              child: 
                                                (BoolBinary
                                                  op_id: BoolBinary_EqualTilde
                                                  left: {(${ VSub_Name EAPI)}
                                                  right: 
                                                    {(Lit_Other '^') ('(') (0) ('|') (1) ('|') (2) ('|') 
                                                      (3) ('|') (4) ('|') (4-python) ('|') (4-slot-abi) (')') (Lit_Other '$')
                                                    }
                                                )
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(die)} 
                                      {
                                        (DQ ("USE Flag '") (${ VSub_Name u) ("' not in IUSE for ") 
                                          (${ VSub_Name CATEGORY) (/) (${ VSub_Name PF)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 1523]
                                )
                              ]
                              spids: [16777215 1552]
                            )
                            (C {(eqawarn)} {(DQ ("QA Notice: USE Flag '") (${ VSub_Name u) ("' not"))} 
                              {(DQ ('in IUSE for ') (${ VSub_Name CATEGORY) (/) (${ VSub_Name PF))}
                            )
                          ]
                          spids: [16777215 1486]
                        )
                      ]
                      spids: [16777215 1579]
                    )
                  ]
                  spids: [1442 1467]
                )
              ]
              spids: [16777215 1582]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: 
                    {
                      (SingleQuotedPart
                        left: <Left_DollarSingleQuote "$'">
                        tokens: [<Char_Literals ' '> <Char_OneChar '\\t'> <Char_OneChar '\\n'>]
                      )
                    }
                  spids: [1588]
                )
                (assign_pair
                  lhs: (LhsName name:prev_shopts)
                  op: Equal
                  rhs: {($ VSub_Hyphen '$-')}
                  spids: [1595]
                )
                (assign_pair lhs:(LhsName name:ret) op:Equal spids:[1598])
              ]
              spids: [1586]
            )
            (C {(set)} {(-f)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(has)} {(${ VSub_Name u)} {(${ VSub_Name USE)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ret)
                          op: Equal
                          rhs: {(${ VSub_Name found)}
                          spids: [1623]
                        )
                      ]
                      spids: [1623]
                    )
                  ]
                  spids: [16777215 1620]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ret)
                      op: Equal
                      rhs: 
                        {
                          (ArithSubPart
                            anode: (ArithUnary op_id:Arith_Bang child:(ArithVarRef name:found))
                            spids: [1633 1637]
                          )
                        }
                      spids: [1632]
                    )
                  ]
                  spids: [1632]
                )
              ]
              spids: [1629 1640]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: {(${ VSub_Name prev_shopts)}
                      right: {(Lit_Other '*') (f) (Lit_Other '*')}
                    )
                )
                (C {(set)} {(Lit_Other '+') (f)})
              ]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(${ VSub_Name ret)})
          ]
          spids: [1320]
        )
      spids: [1316 1319]
    )
    (FuncDef
      name: use_with
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('!!! use_with() called without a parameter.'))}]
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 16777215
                          arg_word: {(2)}
                          spids: [1703]
                        )
                      ]
                    )
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('!!! use_with <USEFLAG> [<flagname> [value]]'))}]
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 16777215
                          arg_word: {(2)}
                          spids: [1713]
                        )
                      ]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 1694]
                )
              ]
              spids: [16777215 1722]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(___eapi_use_enable_and_use_with_support_empty_third_argument)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:UW_SUFFIX)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Number 3>
                                suffix_op: 
                                  (StringUnary
                                    op_id: VTest_Plus
                                    arg_word: {('=') ($ VSub_Number '$3')}
                                  )
                                spids: [1737 1742]
                              )
                            }
                          spids: [1736]
                        )
                      ]
                      spids: [1734]
                    )
                  ]
                  spids: [16777215 1731]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:UW_SUFFIX)
                      op: Equal
                      rhs: 
                        {
                          (BracedVarSub
                            token: <VSub_Number 3>
                            suffix_op: 
                              (StringUnary
                                op_id: VTest_ColonPlus
                                arg_word: {('=') ($ VSub_Number '$3')}
                              )
                            spids: [1751 1756]
                          )
                        }
                      spids: [1750]
                    )
                  ]
                  spids: [1748]
                )
              ]
              spids: [1745 1759]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:UWORD)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 2>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: {($ VSub_Number '$1')}
                          )
                        spids: [1765 1769]
                      )
                    }
                  spids: [1764]
                )
              ]
              spids: [1762]
            )
            (If
              arms: [
                (if_arm
                  cond: [(Sentence child:(C {(use)} {($ VSub_Number '$1')}) terminator:<Op_Semi ';'>)]
                  action: [(C {(echo)} {(DQ (--with-) (${ VSub_Name UWORD) (${ VSub_Name UW_SUFFIX))})]
                  spids: [16777215 1780]
                )
              ]
              else_action: [(C {(echo)} {(DQ (--without-) (${ VSub_Name UWORD))})]
              spids: [1796 1809]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [1678]
        )
      spids: [1674 1677]
    )
    (FuncDef
      name: use_enable
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('!!! use_enable() called without a parameter.'))}]
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 16777215
                          arg_word: {(2)}
                          spids: [1848]
                        )
                      ]
                    )
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('!!! use_enable <USEFLAG> [<flagname> [value]]'))}]
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 16777215
                          arg_word: {(2)}
                          spids: [1858]
                        )
                      ]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 1839]
                )
              ]
              spids: [16777215 1867]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(___eapi_use_enable_and_use_with_support_empty_third_argument)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:UE_SUFFIX)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Number 3>
                                suffix_op: 
                                  (StringUnary
                                    op_id: VTest_Plus
                                    arg_word: {('=') ($ VSub_Number '$3')}
                                  )
                                spids: [1882 1887]
                              )
                            }
                          spids: [1881]
                        )
                      ]
                      spids: [1879]
                    )
                  ]
                  spids: [16777215 1876]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:UE_SUFFIX)
                      op: Equal
                      rhs: 
                        {
                          (BracedVarSub
                            token: <VSub_Number 3>
                            suffix_op: 
                              (StringUnary
                                op_id: VTest_ColonPlus
                                arg_word: {('=') ($ VSub_Number '$3')}
                              )
                            spids: [1896 1901]
                          )
                        }
                      spids: [1895]
                    )
                  ]
                  spids: [1893]
                )
              ]
              spids: [1890 1904]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:UWORD)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 2>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: {($ VSub_Number '$1')}
                          )
                        spids: [1910 1914]
                      )
                    }
                  spids: [1909]
                )
              ]
              spids: [1907]
            )
            (If
              arms: [
                (if_arm
                  cond: [(Sentence child:(C {(use)} {($ VSub_Number '$1')}) terminator:<Op_Semi ';'>)]
                  action: [(C {(echo)} {(DQ (--enable-) (${ VSub_Name UWORD) (${ VSub_Name UE_SUFFIX))})]
                  spids: [16777215 1925]
                )
              ]
              else_action: [(C {(echo)} {(DQ (--disable-) (${ VSub_Name UWORD))})]
              spids: [1941 1954]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [1823]
        )
      spids: [1819 1822]
    )
    (FuncDef
      name: unpack
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:srcdir) op:Equal spids:[1973])]
              spids: [1971]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:x) op:Equal spids:[1978])]
              spids: [1976]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:y) op:Equal spids:[1983])
                (assign_pair lhs:(LhsName name:y_insensitive) op:Equal spids:[1985])
              ]
              spids: [1981]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:suffix) op:Equal spids:[1990])
                (assign_pair
                  lhs: (LhsName name:suffix_insensitive)
                  op: Equal
                  spids: [1992]
                )
              ]
              spids: [1988]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:myfail) op:Equal spids:[1997])]
              spids: [1995]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:eapi)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name EAPI>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(0)})
                        spids: [2003 2007]
                      )
                    }
                  spids: [2002]
                )
              ]
              spids: [2000]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Star '$*'))} {(Lit_Other ']')})
                (C {(die)} {(DQ ("Nothing passed to the 'unpack' command"))})
              ]
            )
            (ForEach
              iter_name: x
              iter_words: [{(DQ ($ VSub_At '$@'))}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (C {(__vecho)} 
                      {(DQ ('>>> Unpacking ') (${ VSub_Name x) (' to ') (${ VSub_Name PWD))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:suffix)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name x>
                                suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*.')})
                                spids: [2059 2063]
                              )
                            }
                          spids: [2058]
                        )
                      ]
                      spids: [2058]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:suffix_insensitive)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (SimpleCommand
                                        words: [{(tr)} {(DQ ('[:upper:]'))} {(DQ ('[:lower:]'))}]
                                        redirects: [
                                          (Redir
                                            op_id: Redir_TLess
                                            fd: 16777215
                                            arg_word: {(DQ (${ VSub_Name suffix))}
                                            spids: [2081]
                                          )
                                        ]
                                        more_env: [(env_pair name:LC_ALL val:{(C)} spids:[2068])]
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [2067 2088]
                              )
                            }
                          spids: [2066]
                        )
                      ]
                      spids: [2066]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:y)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name x>
                                suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{('.*')})
                                spids: [2092 2096]
                              )
                            }
                          spids: [2091]
                        )
                      ]
                      spids: [2091]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:y)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name y>
                                suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*.')})
                                spids: [2100 2104]
                              )
                            }
                          spids: [2099]
                        )
                      ]
                      spids: [2099]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:y_insensitive)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (SimpleCommand
                                        words: [{(tr)} {(DQ ('[:upper:]'))} {(DQ ('[:lower:]'))}]
                                        redirects: [
                                          (Redir
                                            op_id: Redir_TLess
                                            fd: 16777215
                                            arg_word: {(DQ (${ VSub_Name y))}
                                            spids: [2122]
                                          )
                                        ]
                                        more_env: [(env_pair name:LC_ALL val:{(C)} spids:[2109])]
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [2108 2129]
                              )
                            }
                          spids: [2107]
                        )
                      ]
                      spids: [2107]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobNEqual
                                      left: {(${ VSub_Name x)}
                                      right: {(Lit_Other '*') (/) (Lit_Other '*')}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:srcdir)
                                  op: Equal
                                  rhs: {(${ VSub_Name DISTDIR) (/)}
                                  spids: [2161]
                                )
                              ]
                              spids: [2161]
                            )
                          ]
                          spids: [16777215 2154]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: {(${ VSub_Name x)}
                                      right: {(./) (Lit_Other '*')}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:srcdir)
                                  op: Equal
                                  rhs: {(EmptyPart)}
                                  spids: [2191]
                                )
                              ]
                              spids: [2191]
                            )
                          ]
                          spids: [2168 2184]
                        )
                      ]
                      else_action: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: (C {(___eapi_unpack_supports_absolute_paths)})
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:srcdir)
                                      op: Equal
                                      rhs: {(EmptyPart)}
                                      spids: [2213]
                                    )
                                  ]
                                  spids: [2213]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobDEqual
                                                  left: {(${ VSub_Name x)}
                                                  right: 
                                                    {
                                                      (BracedVarSub
                                                        token: <VSub_Name DISTDIR>
                                                        suffix_op: 
                                                          (StringUnary
                                                            op_id: VOp1_Percent
                                                            arg_word: {(Lit_Slash /)}
                                                          )
                                                        spids: [2227 2231]
                                                      ) (/) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(eqawarn)} 
                                          {
                                            (DQ ('QA Notice: unpack called with redundant ') 
                                              (EscapedLiteralPart
                                                token: <Lit_EscapedChar '\\$'>
                                              ) ('{DISTDIR} in path')
                                            )
                                          }
                                        )
                                      ]
                                      spids: [16777215 2238]
                                    )
                                  ]
                                  spids: [16777215 2250]
                                )
                              ]
                              spids: [16777215 2206]
                            )
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: {(${ VSub_Name x)}
                                          right: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name DISTDIR>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_Percent
                                                    arg_word: {(Lit_Slash /)}
                                                  )
                                                spids: [2263 2267]
                                              ) (/) (Lit_Other '*')
                                            }
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(die)} 
                                  {
                                    (DQ ('Arguments to unpack() cannot begin with ') 
                                      (EscapedLiteralPart
                                        token: <Lit_EscapedChar '\\$'>
                                      ) ('{DISTDIR} in EAPI ') (${ VSub_Name EAPI)
                                    )
                                  }
                                )
                              ]
                              spids: [2253 2274]
                            )
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: {(${ VSub_Name x)}
                                          right: {(/) (Lit_Other '*')}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(die)} 
                                  {
                                    (DQ ('Arguments to unpack() cannot be absolute in EAPI ') 
                                      (${ VSub_Name EAPI)
                                    )
                                  }
                                )
                              ]
                              spids: [2289 2306]
                            )
                          ]
                          else_action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (
"Relative paths to unpack() must be prefixed with './' in EAPI "
                                  ) (${ VSub_Name EAPI)
                                )
                              }
                            )
                          ]
                          spids: [2319 2332]
                        )
                      ]
                      spids: [2194 2335]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (LogicalNot
                                      child: 
                                        (BoolUnary
                                          op_id: BoolUnary_s
                                          child: {(${ VSub_Name srcdir) (${ VSub_Name x)}
                                        )
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(__helpers_die)} 
                              {(DQ ('unpack: ') (${ VSub_Name x) (' does not exist'))}
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(1)}
                            )
                          ]
                          spids: [16777215 2356]
                        )
                      ]
                      spids: [16777215 2375]
                    )
                    (FuncDef
                      name: __unpack_tar
                      body: 
                        (BraceGroup
                          children: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobDEqual
                                              left: {(${ VSub_Name y_insensitive)}
                                              right: {(tar)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (AndOr
                                                  ops: [Op_DAmp]
                                                  children: [
                                                    (C {(___eapi_unpack_is_case_sensitive)})
                                                    (DBracket
                                                      expr: 
                                                        (BoolBinary
                                                          op_id: BoolBinary_GlobNEqual
                                                          left: {(tar)}
                                                          right: {(${ VSub_Name y)}
                                                        )
                                                    )
                                                  ]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                              {
                                                (DQ ("secondary suffix '") (${ VSub_Name y) 
                                                  ("' which is unofficially")
                                                )
                                              } {(DQ ("supported with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'tar'."))}
                                            )
                                          ]
                                          spids: [16777215 2427]
                                        )
                                      ]
                                      spids: [16777215 2457]
                                    )
                                    (Pipeline
                                      children: [
                                        (C {($ VSub_Number '$1')} {(-c)} {(--)} 
                                          {(DQ ($ VSub_Name '$srcdir') ($ VSub_Name '$x'))}
                                        )
                                        (C {(tar)} {(xof)} {(-)})
                                      ]
                                      negated: F
                                    )
                                    (AndOr
                                      ops: [Op_DPipe]
                                      children: [
                                        (C {(__assert_sigpipe_ok)} {(DQ ($ VSub_Name '$myfail'))})
                                        (ControlFlow
                                          token: <ControlFlow_Return return>
                                          arg_word: {(1)}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [16777215 2402]
                                )
                              ]
                              else_action: [
                                (Assignment
                                  keyword: Assign_Local
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:cwd_dest)
                                      op: Equal
                                      rhs: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name x>
                                            suffix_op: 
                                              (StringUnary
                                                op_id: VOp1_DPound
                                                arg_word: {('*') (Lit_Slash /)}
                                              )
                                            spids: [2499 2504]
                                          )
                                        }
                                      spids: [2498]
                                    )
                                  ]
                                  spids: [2496]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:cwd_dest)
                                      op: Equal
                                      rhs: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name cwd_dest>
                                            suffix_op: 
                                              (StringUnary
                                                op_id: VOp1_Percent
                                                arg_word: {('.*')}
                                              )
                                            spids: [2508 2512]
                                          )
                                        }
                                      spids: [2507]
                                    )
                                  ]
                                  spids: [2507]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (Pipeline
                                              children: [
                                                (SimpleCommand
                                                  words: [
                                                    {($ VSub_Number '$1')}
                                                    {(-c)}
                                                    {(--)}
                                                    {(DQ (${ VSub_Name srcdir) (${ VSub_Name x))}
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op_id: Redir_Great
                                                      fd: 16777215
                                                      arg_word: {(DQ (${ VSub_Name cwd_dest))}
                                                      spids: [2534]
                                                    )
                                                  ]
                                                )
                                              ]
                                              negated: T
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                        (ControlFlow
                                          token: <ControlFlow_Return return>
                                          arg_word: {(1)}
                                        )
                                      ]
                                      spids: [16777215 2543]
                                    )
                                  ]
                                  spids: [16777215 2558]
                                )
                              ]
                              spids: [2493 2561]
                            )
                          ]
                          spids: [2383]
                        )
                      spids: [2379 2382]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:myfail)
                          op: Equal
                          rhs: {(DQ ('unpack: failure unpacking ') (${ VSub_Name x))}
                          spids: [2568]
                        )
                      ]
                      spids: [2568]
                    )
                    (Case
                      to_match: {(DQ (${ VSub_Name suffix_insensitive))}
                      arms: [
                        (case_arm
                          pat_list: [{(tar)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(tar)}
                                                  right: {(${ VSub_Name suffix)}
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'tar'."))}
                                    )
                                  ]
                                  spids: [16777215 2614]
                                )
                              ]
                              spids: [16777215 2644]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(tar)} {(xof)} 
                                              {(DQ ($ VSub_Name '$srcdir') ($ VSub_Name '$x'))}
                                            )
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(1)}
                                    )
                                  ]
                                  spids: [16777215 2661]
                                )
                              ]
                              spids: [16777215 2676]
                            )
                          ]
                          spids: [2588 2589 2679 16777215]
                        )
                        (case_arm
                          pat_list: [{(tgz)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(tgz)}
                                                  right: {(${ VSub_Name suffix)}
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'tgz'."))}
                                    )
                                  ]
                                  spids: [16777215 2708]
                                )
                              ]
                              spids: [16777215 2738]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(tar)} {(xozf)} 
                                              {(DQ ($ VSub_Name '$srcdir') ($ VSub_Name '$x'))}
                                            )
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(1)}
                                    )
                                  ]
                                  spids: [16777215 2755]
                                )
                              ]
                              spids: [16777215 2770]
                            )
                          ]
                          spids: [2682 2683 2773 16777215]
                        )
                        (case_arm
                          pat_list: [{(tbz)} {(tbz2)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' tbz tbz2 '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'tbz' or 'tbz2'."))}
                                    )
                                  ]
                                  spids: [16777215 2812]
                                )
                              ]
                              spids: [16777215 2842]
                            )
                            (Pipeline
                              children: [
                                (C 
                                  {
                                    (BracedVarSub
                                      token: <VSub_Name PORTAGE_BUNZIP2_COMMAND>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VTest_ColonHyphen
                                          arg_word: {(${ VSub_Name PORTAGE_BZIP2_COMMAND) (' -d')}
                                        )
                                      spids: [2845 2852]
                                    )
                                  } {(-c)} {(--)} {(DQ ($ VSub_Name '$srcdir') ($ VSub_Name '$x'))}
                                )
                                (C {(tar)} {(xof)} {(-)})
                              ]
                              negated: F
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(__assert_sigpipe_ok)} {(DQ ($ VSub_Name '$myfail'))})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(1)}
                                )
                              ]
                            )
                          ]
                          spids: [2776 2779 2885 16777215]
                        )
                        (case_arm
                          pat_list: [{(zip)} {(jar)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' ZIP zip jar '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'."))} {(DQ ("Instead use 'ZIP', 'zip', or 'jar'."))}
                                    )
                                  ]
                                  spids: [16777215 2924]
                                )
                              ]
                              spids: [16777215 2960]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(unzip)} {(-qo)} 
                                              {(DQ (${ VSub_Name srcdir) (${ VSub_Name x))}
                                            )
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(1)}
                                    )
                                  ]
                                  spids: [16777215 2989]
                                )
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Less
                                  fd: 16777215
                                  arg_word: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Sentence
                                                child: (C {(set)} {(Lit_Other '+') (x)})
                                                terminator: <Op_Semi ';'>
                                              )
                                              (While
                                                cond: [
                                                  (Sentence
                                                    child: (C {(true)})
                                                    terminator: <Op_Semi ';'>
                                                  )
                                                ]
                                                body: 
                                                  (DoGroup
                                                    children: [
                                                      (Sentence
                                                        child: 
                                                          (AndOr
                                                            ops: [Op_DPipe]
                                                            children: [
                                                              (C {(echo)} {(n)})
                                                              (ControlFlow
                                                                token: <ControlFlow_Break break>
                                                              )
                                                            ]
                                                          )
                                                        terminator: <Op_Semi ';'>
                                                      )
                                                    ]
                                                    spids: [3022 3034]
                                                  )
                                              )
                                            ]
                                          )
                                        left_token: <Left_ProcSubIn '<('>
                                        spids: [3008 3035]
                                      )
                                    }
                                  spids: [3006]
                                )
                              ]
                              spids: [16777215 3004]
                            )
                          ]
                          spids: [2888 2891 3038 16777215]
                        )
                        (case_arm
                          pat_list: [{(gz)} {(z)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' gz z Z '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'gz', 'z', or 'Z'."))}
                                    )
                                  ]
                                  spids: [16777215 3077]
                                )
                              ]
                              spids: [16777215 3107]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(__unpack_tar)} {(DQ ('gzip -d'))})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(1)}
                                )
                              ]
                            )
                          ]
                          spids: [3041 3044 3123 16777215]
                        )
                        (case_arm
                          pat_list: [{(bz2)} {(bz)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' bz bz2 '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'bz' or 'bz2'."))}
                                    )
                                  ]
                                  spids: [16777215 3162]
                                )
                              ]
                              spids: [16777215 3192]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(__unpack_tar)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name PORTAGE_BUNZIP2_COMMAND>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VTest_ColonHyphen
                                            arg_word: {(${ VSub_Name PORTAGE_BZIP2_COMMAND) (' -d')}
                                          )
                                        spids: [3198 3205]
                                      )
                                    )
                                  }
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(1)}
                                )
                              ]
                            )
                          ]
                          spids: [3126 3129 3217 16777215]
                        )
                        (case_arm
                          pat_list: [{(7z)}]
                          action: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:my_output)
                                  op: Equal
                                  spids: [3226]
                                )
                              ]
                              spids: [3224]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:my_output)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {(7z)} {(x)} {(-y)} 
                                                  {(DQ (${ VSub_Name srcdir) (${ VSub_Name x))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [3231 3246]
                                        )
                                      )
                                    }
                                  spids: [3229]
                                )
                              ]
                              spids: [3229]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (SimpleCommand
                                      words: [{(echo)} {(DQ (${ VSub_Name my_output))}]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_GreatAnd
                                          fd: 16777215
                                          arg_word: {(2)}
                                          spids: [3274]
                                        )
                                      ]
                                    )
                                    (C {(die)} {(DQ ($ VSub_Name '$myfail'))})
                                  ]
                                  spids: [16777215 3263]
                                )
                              ]
                              spids: [16777215 3285]
                            )
                          ]
                          spids: [3220 3221 3288 16777215]
                        )
                        (case_arm
                          pat_list: [{(rar)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' rar RAR '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'rar' or 'RAR'."))}
                                    )
                                  ]
                                  spids: [16777215 3325]
                                )
                              ]
                              spids: [16777215 3355]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(unrar)} {(x)} {(-idq)} {(-o) (Lit_Other '+')} 
                                              {(DQ (${ VSub_Name srcdir) (${ VSub_Name x))}
                                            )
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(1)}
                                    )
                                  ]
                                  spids: [16777215 3381]
                                )
                              ]
                              spids: [16777215 3396]
                            )
                          ]
                          spids: [3291 3292 3399 16777215]
                        )
                        (case_arm
                          pat_list: [{(lha)} {(lzh)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' LHA LHa lha lzh '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'."))} {(DQ ("Instead use 'LHA', 'LHa', 'lha', or 'lzh'."))}
                                    )
                                  ]
                                  spids: [16777215 3438]
                                )
                              ]
                              spids: [16777215 3474]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(lha)} {(xfq)} 
                                              {(DQ (${ VSub_Name srcdir) (${ VSub_Name x))}
                                            )
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(1)}
                                    )
                                  ]
                                  spids: [16777215 3495]
                                )
                              ]
                              spids: [16777215 3510]
                            )
                          ]
                          spids: [3402 3405 3513 16777215]
                        )
                        (case_arm
                          pat_list: [{(a)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' a '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'a'."))}
                                    )
                                  ]
                                  spids: [16777215 3550]
                                )
                              ]
                              spids: [16777215 3580]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(ar)} {(x)} {(DQ (${ VSub_Name srcdir) (${ VSub_Name x))})
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(1)}
                                    )
                                  ]
                                  spids: [16777215 3601]
                                )
                              ]
                              spids: [16777215 3616]
                            )
                          ]
                          spids: [3516 3517 3619 16777215]
                        )
                        (case_arm
                          pat_list: [{(deb)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' deb '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'deb'."))}
                                    )
                                  ]
                                  spids: [16777215 3656]
                                )
                              ]
                              spids: [16777215 3686]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: 
                                                    {
                                                      (CommandSubPart
                                                        command_list: 
                                                          (CommandList
                                                            children: [
                                                              (SimpleCommand
                                                                words: [{(ar)} {(--version)}]
                                                                redirects: [
                                                                  (Redir
                                                                    op_id: Redir_Great
                                                                    fd: 2
                                                                    arg_word: {(/dev/null)}
                                                                    spids: [3722]
                                                                  )
                                                                ]
                                                              )
                                                            ]
                                                          )
                                                        left_token: <Left_CommandSub '$('>
                                                        spids: [3717 3724]
                                                      )
                                                    }
                                                  right: {(DQ ('GNU ar')) (Lit_Other '*')}
                                                )
                                            )
                                            (SimpleCommand
                                              words: [{(type)} {(-P)} {(deb2targz)}]
                                              redirects: [
                                                (Redir
                                                  op_id: Redir_Great
                                                  fd: 16777215
                                                  arg_word: {(/dev/null)}
                                                  spids: [3745]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:y)
                                          op: Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name x>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_DPound
                                                    arg_word: {('*') (Lit_Slash /)}
                                                  )
                                                spids: [3754 3759]
                                              )
                                            }
                                          spids: [3753]
                                        )
                                      ]
                                      spids: [3753]
                                    )
                                    (Assignment
                                      keyword: Assign_Local
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:created_symlink)
                                          op: Equal
                                          rhs: {(0)}
                                          spids: [3764]
                                        )
                                      ]
                                      spids: [3762]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(Lit_Other '[')} {(KW_Bang '!')} 
                                                  {(DQ ($ VSub_Name '$srcdir') ($ VSub_Name '$x'))} {(-ef)} {(DQ ($ VSub_Name '$y'))} {(Lit_Other ']')}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (Sentence
                                                      child: 
                                                        (Pipeline
                                                          children: [
                                                            (C {(ln)} {(-sf)} 
                                                              {
                                                                (DQ ($ VSub_Name '$srcdir') 
                                                                  ($ VSub_Name '$x')
                                                                )
                                                              } {(DQ ($ VSub_Name '$y'))}
                                                            )
                                                          ]
                                                          negated: T
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  action: [
                                                    (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                                    (ControlFlow
                                                      token: <ControlFlow_Return return>
                                                      arg_word: {(1)}
                                                    )
                                                  ]
                                                  spids: [16777215 3822]
                                                )
                                              ]
                                              spids: [16777215 3837]
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:created_symlink)
                                                  op: Equal
                                                  rhs: {(1)}
                                                  spids: [3840]
                                                )
                                              ]
                                              spids: [3840]
                                            )
                                          ]
                                          spids: [16777215 3789]
                                        )
                                      ]
                                      spids: [16777215 3844]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (Pipeline
                                                  children: [(C {(deb2targz)} {(DQ ($ VSub_Name '$y'))})]
                                                  negated: T
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                            (ControlFlow
                                              token: <ControlFlow_Return return>
                                              arg_word: {(1)}
                                            )
                                          ]
                                          spids: [16777215 3858]
                                        )
                                      ]
                                      spids: [16777215 3873]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(Lit_Other '[')} {($ VSub_Name '$created_symlink')} 
                                                  {(Lit_Other '=')} {(1)} {(Lit_Other ']')}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [(C {(rm)} {(-f)} {(DQ ($ VSub_Name '$y'))})]
                                          spids: [16777215 3890]
                                        )
                                      ]
                                      spids: [16777215 3910]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (Pipeline
                                                  children: [
                                                    (C {(mv)} {(-f)} 
                                                      {
                                                        (DQ 
                                                          (BracedVarSub
                                                            token: <VSub_Name y>
                                                            suffix_op: 
                                                              (StringUnary
                                                                op_id: VOp1_Percent
                                                                arg_word: {(.deb)}
                                                              )
                                                            spids: [3922 3926]
                                                          )
                                                        ) (.tar.gz)
                                                      } {(data.tar.gz)}
                                                    )
                                                  ]
                                                  negated: T
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (Sentence
                                                      child: 
                                                        (Pipeline
                                                          children: [
                                                            (C {(mv)} {(-f)} 
                                                              {
                                                                (DQ 
                                                                  (BracedVarSub
                                                                    token: <VSub_Name y>
                                                                    suffix_op: 
                                                                      (StringUnary
                                                                        op_id: VOp1_Percent
                                                                        arg_word: {(.deb)}
                                                                      )
                                                                    spids: [3945 3949]
                                                                  )
                                                                ) (.tar.xz)
                                                              } {(data.tar.xz)}
                                                            )
                                                          ]
                                                          negated: T
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  action: [
                                                    (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                                    (ControlFlow
                                                      token: <ControlFlow_Return return>
                                                      arg_word: {(1)}
                                                    )
                                                  ]
                                                  spids: [16777215 3956]
                                                )
                                              ]
                                              spids: [16777215 3971]
                                            )
                                          ]
                                          spids: [16777215 3933]
                                        )
                                      ]
                                      spids: [16777215 3974]
                                    )
                                  ]
                                  spids: [16777215 3750]
                                )
                              ]
                              else_action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (Pipeline
                                              children: [
                                                (C {(ar)} {(x)} 
                                                  {(DQ ($ VSub_Name '$srcdir') ($ VSub_Name '$x'))}
                                                )
                                              ]
                                              negated: T
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                        (ControlFlow
                                          token: <ControlFlow_Return return>
                                          arg_word: {(1)}
                                        )
                                      ]
                                      spids: [16777215 3994]
                                    )
                                  ]
                                  spids: [16777215 4009]
                                )
                              ]
                              spids: [3977 4012]
                            )
                          ]
                          spids: [3622 3623 4015 16777215]
                        )
                        (case_arm
                          pat_list: [{(lzma)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' lzma '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'lzma'."))}
                                    )
                                  ]
                                  spids: [16777215 4052]
                                )
                              ]
                              spids: [16777215 4082]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(__unpack_tar)} {(DQ ('lzma -d'))})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(1)}
                                )
                              ]
                            )
                          ]
                          spids: [4018 4019 4098 16777215]
                        )
                        (case_arm
                          pat_list: [{(xz)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' xz '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'xz'."))}
                                    )
                                  ]
                                  spids: [16777215 4135]
                                )
                              ]
                              spids: [16777215 4165]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(___eapi_unpack_supports_xz)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (AndOr
                                      ops: [Op_DPipe]
                                      children: [
                                        (C {(__unpack_tar)} {(DQ ('xz -d'))})
                                        (ControlFlow
                                          token: <ControlFlow_Return return>
                                          arg_word: {(1)}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [16777215 4173]
                                )
                              ]
                              else_action: [
                                (C {(__vecho)} 
                                  {
                                    (DQ ('unpack ') (${ VSub_Name x) 
                                      (': file format not recognized. Ignoring.')
                                    )
                                  }
                                )
                              ]
                              spids: [4189 4203]
                            )
                          ]
                          spids: [4101 4102 4206 16777215]
                        )
                        (case_arm
                          pat_list: [{(txz)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' txz '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'txz'."))}
                                    )
                                  ]
                                  spids: [16777215 4243]
                                )
                              ]
                              spids: [16777215 4273]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(___eapi_unpack_supports_txz)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (Pipeline
                                                  children: [
                                                    (C {(tar)} {(xof)} 
                                                      {
                                                        (DQ ($ VSub_Name '$srcdir') ($ VSub_Name '$x'))
                                                      }
                                                    )
                                                  ]
                                                  negated: T
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                            (ControlFlow
                                              token: <ControlFlow_Return return>
                                              arg_word: {(1)}
                                            )
                                          ]
                                          spids: [16777215 4298]
                                        )
                                      ]
                                      spids: [16777215 4313]
                                    )
                                  ]
                                  spids: [16777215 4281]
                                )
                              ]
                              else_action: [
                                (C {(__vecho)} 
                                  {
                                    (DQ ('unpack ') (${ VSub_Name x) 
                                      (': file format not recognized. Ignoring.')
                                    )
                                  }
                                )
                              ]
                              spids: [4316 4330]
                            )
                          ]
                          spids: [4209 4210 4333 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (C {(__vecho)} 
                              {
                                (DQ ('unpack ') (${ VSub_Name x) 
                                  (': file format not recognized. Ignoring.')
                                )
                              }
                            )
                          ]
                          spids: [4336 4337 4351 16777215]
                        )
                      ]
                      spids: [2577 2585 4354]
                    )
                  ]
                  spids: [2041 4357]
                )
              spids: [2035 2039]
            )
            (Pipeline
              children: [
                (C {(find)} {(.)} {(-mindepth)} {(1)} {(-maxdepth)} {(1)} {(KW_Bang '!')} {(-type)} {(l)} 
                  {(-print0)}
                )
                (C {(${ VSub_Name XARGS)} {(-0)} {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/chmod-lite))})
              ]
              negated: F
            )
          ]
          spids: [1968]
        )
      spids: [1964 1967]
    )
    (FuncDef
      name: econf
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:x) op:Equal spids:[4417])]
              spids: [4415]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pid)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name BASHPID>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: 
                              {
                                (CommandSubPart
                                  command_list: (CommandList children:[(C {(__bashpid)})])
                                  left_token: <Left_CommandSub '$('>
                                  spids: [4426 4428]
                                )
                              }
                          )
                        spids: [4423 4429]
                      )
                    }
                  spids: [4422]
                )
              ]
              spids: [4420]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (Pipeline children:[(C {(___eapi_has_prefix_variables)})] negated:T)
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:EPREFIX)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [4445]
                        )
                      ]
                      spids: [4443]
                    )
                  ]
                  spids: [16777215 4440]
                )
              ]
              spids: [16777215 4448]
            )
            (FuncDef
              name: __hasg
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:x)
                          op: Equal
                          spids: [4461]
                        )
                        (assign_pair
                          lhs: (LhsName name:s)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [4463]
                        )
                      ]
                      spids: [4459]
                    )
                    (C {(shift)})
                    (ForEach
                      iter_name: x
                      do_arg_iter: T
                      body: 
                        (DoGroup
                          children: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp Op_DAmp]
                                  children: [
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: {(${ VSub_Name x)}
                                          right: {(${ VSub_Name s)}
                                        )
                                    )
                                    (C {(echo)} {(DQ (${ VSub_Name x))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(0)}
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [4476 4510]
                        )
                      spids: [16777215 16777215]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [4456]
                )
              spids: [4452 4455]
            )
            (FuncDef
              name: __hasgq
              body: 
                (BraceGroup
                  children: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(__hasg)} {(DQ ($ VSub_At '$@'))}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [4534]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [4526]
                )
              spids: [4522 4525]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:phase_func)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(__ebuild_arg_to_phase)} {(DQ ($ VSub_Name '$EBUILD_PHASE'))})
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [4546 4552]
                      )
                    }
                  spids: [4545]
                )
              ]
              spids: [4543]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{($ VSub_Name '$phase_func')})
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [(C {(___eapi_has_src_configure)})]
                                  negated: T
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobNEqual
                                      left: {($ VSub_Name '$phase_func')}
                                      right: {(src_compile)}
                                    )
                                )
                                (C {(eqawarn)} {(DQ ('QA Notice: econf called in'))} 
                                  {(DQ ($ VSub_Name '$phase_func') (' instead of src_compile'))}
                                )
                              ]
                            )
                          ]
                          spids: [16777215 4577]
                        )
                      ]
                      else_action: [
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobNEqual
                                  left: {($ VSub_Name '$phase_func')}
                                  right: {(src_configure)}
                                )
                            )
                            (C {(eqawarn)} {(DQ ('QA Notice: econf called in'))} 
                              {(DQ ($ VSub_Name '$phase_func') (' instead of src_configure'))}
                            )
                          ]
                        )
                      ]
                      spids: [4608 4639]
                    )
                  ]
                  spids: [16777215 4567]
                )
              ]
              spids: [16777215 4642]
            )
            (C {(Lit_Other ':')} 
              {
                (BracedVarSub
                  token: <VSub_Name ECONF_SOURCE>
                  suffix_op: (StringUnary op_id:VTest_ColonEquals arg_word:{(.)})
                  spids: [4648 4652]
                )
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-x)} {(DQ (${ VSub_Name ECONF_SOURCE) (/configure))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (LogicalAnd
                                      left: 
                                        (BoolUnary
                                          op_id: BoolUnary_n
                                          child: {($ VSub_Name '$CONFIG_SHELL')}
                                        )
                                      right: 
                                        (BoolBinary
                                          op_id: BoolBinary_EqualTilde
                                          left: 
                                            {
                                              (DQ 
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(head)} {(-n1)} 
                                                          {
                                                            (DQ ($ VSub_Name '$ECONF_SOURCE') 
                                                              (/configure)
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [4687 4696]
                                                )
                                              )
                                            }
                                          right: 
                                            {(Lit_Other '^') (SQ <'#!'>) (Lit_Other '[') 
                                              (Lit_Other '[') (Lit_Other ':') (space) (Lit_Other ':') (Lit_Other ']') (Lit_Other ']') (Lit_Other '*') (/bin/sh) ('(') 
                                              (Lit_Other '[') (Lit_Other '[') (Lit_Other ':') (space) (Lit_Other ':') (Lit_Other ']') (Lit_Other ']') ('|') 
                                              (Lit_Other '$') (')')
                                            }
                                        )
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(cp)} {(-p)} {(DQ (${ VSub_Name ECONF_SOURCE) (/configure))} 
                                  {
                                    (DQ (${ VSub_Name ECONF_SOURCE) (/configure._portage_tmp_.) 
                                      (${ VSub_Name pid)
                                    )
                                  }
                                )
                                (C {(die)})
                              ]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(sed)} {(-i)} {(-e)} 
                                  {
                                    (DQ ('1s:^#![[:space:]]*/bin/sh:#!') ($ VSub_Name '$CONFIG_SHELL') 
                                      (':')
                                    )
                                  } {(DQ (${ VSub_Name ECONF_SOURCE) (/configure._portage_tmp_.) (${ VSub_Name pid))}
                                )
                                (C {(die)} 
                                  {
                                    (DQ ("Substition of shebang in '") (${ VSub_Name ECONF_SOURCE) 
                                      ("/configure' failed")
                                    )
                                  }
                                )
                              ]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(touch)} {(-r)} {(DQ (${ VSub_Name ECONF_SOURCE) (/configure))} 
                                  {
                                    (DQ (${ VSub_Name ECONF_SOURCE) (/configure._portage_tmp_.) 
                                      (${ VSub_Name pid)
                                    )
                                  }
                                )
                                (C {(die)})
                              ]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(mv)} {(-f)} 
                                  {
                                    (DQ (${ VSub_Name ECONF_SOURCE) (/configure._portage_tmp_.) 
                                      (${ VSub_Name pid)
                                    )
                                  } {(DQ (${ VSub_Name ECONF_SOURCE) (/configure))}
                                )
                                (C {(die)})
                              ]
                            )
                          ]
                          spids: [16777215 4730]
                        )
                      ]
                      spids: [16777215 4856]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-e)} 
                                  {(DQ (${ VSub_Name EPREFIX)) (/usr/share/gnuconfig/)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Pipeline
                              children: [
                                (C {(find)} {(DQ (${ VSub_Name WORKDIR))} {(-type)} {(f)} {(SQ <'('>)} 
                                  {(-name)} {(config.guess)} {(-o)} {(-name)} {(config.sub)} {(SQ <')'>)} {(-print0)}
                                )
                                (While
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(read)} {(-r)} {(-d)} 
                                          {
                                            (SingleQuotedPart
                                              left: <Left_DollarSingleQuote "$'">
                                              tokens: [<Char_OneChar '\\0'>]
                                            )
                                          } {(x)}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  body: 
                                    (DoGroup
                                      children: [
                                        (C {(__vecho)} 
                                          {
                                            (DQ (' * econf: updating ') 
                                              (BracedVarSub
                                                token: <VSub_Name x>
                                                suffix_op: 
                                                  (PatSub
                                                    pat: 
                                                      {(${ VSub_Name WORKDIR) 
                                                        (EscapedLiteralPart
                                                          token: <Lit_EscapedChar '\\/'>
                                                        )
                                                      }
                                                    do_all: F
                                                    do_prefix: F
                                                    do_suffix: F
                                                  )
                                                spids: [4939 4946]
                                              ) (' with ') (${ VSub_Name EPREFIX) (/usr/share/gnuconfig/) 
                                              (BracedVarSub
                                                token: <VSub_Name x>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_DPound
                                                    arg_word: {('*') (Lit_Slash /)}
                                                  )
                                                spids: [4952 4957]
                                              )
                                            )
                                          }
                                        )
                                        (C {(cp)} {(-f)} 
                                          {(DQ (${ VSub_Name EPREFIX)) (/usr/share/gnuconfig/) 
                                            (DQ 
                                              (BracedVarSub
                                                token: <VSub_Name x>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_DPound
                                                    arg_word: {('*') (Lit_Slash /)}
                                                  )
                                                spids: [4976 4981]
                                              )
                                            )
                                          } {(DQ (${ VSub_Name x) (.) (${ VSub_Name pid))}
                                        )
                                        (C {(mv)} {(-f)} {(DQ (${ VSub_Name x) (.) (${ VSub_Name pid))} 
                                          {(DQ (${ VSub_Name x))}
                                        )
                                      ]
                                      spids: [4932 5016]
                                    )
                                )
                              ]
                              negated: F
                            )
                          ]
                          spids: [16777215 4875]
                        )
                      ]
                      spids: [16777215 5019]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:conf_args)
                          op: Equal
                          rhs: {(ArrayLiteralPart)}
                          spids: [5025]
                        )
                      ]
                      spids: [5023]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DPipe Op_DPipe]
                                  children: [
                                    (C {(___eapi_econf_passes_--disable-dependency-tracking)})
                                    (C {(___eapi_econf_passes_--disable-silent-rules)})
                                    (C {(___eapi_econf_passes_--docdir_and_--htmldir)})
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:conf_help)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (SimpleCommand
                                                words: [
                                                  {(DQ (${ VSub_Name ECONF_SOURCE) (/configure))}
                                                  {(--help)}
                                                ]
                                                redirects: [
                                                  (Redir
                                                    op_id: Redir_Great
                                                    fd: 2
                                                    arg_word: {(/dev/null)}
                                                    spids: [5059]
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [5049 5061]
                                      )
                                    }
                                  spids: [5048]
                                )
                              ]
                              spids: [5046]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(___eapi_econf_passes_--disable-dependency-tracking)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DBracket
                                                  expr: 
                                                    (BoolBinary
                                                      op_id: BoolBinary_GlobDEqual
                                                      left: {(${ VSub_Name conf_help)}
                                                      right: 
                                                        {(Lit_Other '*') 
                                                          (--disable-dependency-tracking) (Lit_Other '*')
                                                        }
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:conf_args)
                                                  op: PlusEqual
                                                  rhs: 
                                                    {
                                                      (ArrayLiteralPart
                                                        words: [{(--disable-dependency-tracking)}]
                                                      )
                                                    }
                                                  spids: [5093]
                                                )
                                              ]
                                              spids: [5093]
                                            )
                                          ]
                                          spids: [16777215 5090]
                                        )
                                      ]
                                      spids: [16777215 5101]
                                    )
                                  ]
                                  spids: [16777215 5070]
                                )
                              ]
                              spids: [16777215 5104]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(___eapi_econf_passes_--disable-silent-rules)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DBracket
                                                  expr: 
                                                    (BoolBinary
                                                      op_id: BoolBinary_GlobDEqual
                                                      left: {(${ VSub_Name conf_help)}
                                                      right: 
                                                        {(Lit_Other '*') (--disable-silent-rules) 
                                                          (Lit_Other '*')
                                                        }
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:conf_args)
                                                  op: PlusEqual
                                                  rhs: 
                                                    {
                                                      (ArrayLiteralPart
                                                        words: [{(--disable-silent-rules)}]
                                                      )
                                                    }
                                                  spids: [5136]
                                                )
                                              ]
                                              spids: [5136]
                                            )
                                          ]
                                          spids: [16777215 5133]
                                        )
                                      ]
                                      spids: [16777215 5144]
                                    )
                                  ]
                                  spids: [16777215 5113]
                                )
                              ]
                              spids: [16777215 5147]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(___eapi_econf_passes_--docdir_and_--htmldir)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DBracket
                                                  expr: 
                                                    (BoolBinary
                                                      op_id: BoolBinary_GlobDEqual
                                                      left: {(${ VSub_Name conf_help)}
                                                      right: 
                                                        {(Lit_Other '*') (--docdir) (Lit_Other '*')}
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:conf_args)
                                                  op: PlusEqual
                                                  rhs: 
                                                    {
                                                      (ArrayLiteralPart
                                                        words: [
                                                          {(--docdir) (Lit_Other '=') 
                                                            (DQ (${ VSub_Name EPREFIX)) (/usr/share/doc/) (${ VSub_Name PF)
                                                          }
                                                        ]
                                                      )
                                                    }
                                                  spids: [5179]
                                                )
                                              ]
                                              spids: [5179]
                                            )
                                          ]
                                          spids: [16777215 5176]
                                        )
                                      ]
                                      spids: [16777215 5197]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DBracket
                                                  expr: 
                                                    (BoolBinary
                                                      op_id: BoolBinary_GlobDEqual
                                                      left: {(${ VSub_Name conf_help)}
                                                      right: 
                                                        {(Lit_Other '*') (--htmldir) (Lit_Other '*')}
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:conf_args)
                                                  op: PlusEqual
                                                  rhs: 
                                                    {
                                                      (ArrayLiteralPart
                                                        words: [
                                                          {(--htmldir) (Lit_Other '=') 
                                                            (DQ (${ VSub_Name EPREFIX)) (/usr/share/doc/) (${ VSub_Name PF) (/html)
                                                          }
                                                        ]
                                                      )
                                                    }
                                                  spids: [5221]
                                                )
                                              ]
                                              spids: [5221]
                                            )
                                          ]
                                          spids: [16777215 5218]
                                        )
                                      ]
                                      spids: [16777215 5240]
                                    )
                                  ]
                                  spids: [16777215 5156]
                                )
                              ]
                              spids: [16777215 5243]
                            )
                          ]
                          spids: [16777215 5043]
                        )
                      ]
                      spids: [16777215 5246]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CONF_LIBDIR)
                          op: Equal
                          spids: [5260]
                        )
                        (assign_pair
                          lhs: (LhsName name:LIBDIR_VAR)
                          op: Equal
                          rhs: {(DQ (LIBDIR_) (${ VSub_Name ABI))}
                          spids: [5262]
                        )
                      ]
                      spids: [5258]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (LogicalAnd
                                      left: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name ABI)})
                                      right: 
                                        (BoolUnary
                                          op_id: BoolUnary_n
                                          child: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name LIBDIR_VAR>
                                                prefix_op: VSub_Bang
                                                spids: [5285 5288]
                                              )
                                            }
                                        )
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:CONF_LIBDIR)
                                  op: Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name LIBDIR_VAR>
                                        prefix_op: VSub_Bang
                                        spids: [5298 5301]
                                      )
                                    }
                                  spids: [5297]
                                )
                              ]
                              spids: [5297]
                            )
                          ]
                          spids: [16777215 5294]
                        )
                      ]
                      spids: [16777215 5304]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (DBracket
                                      expr: 
                                        (BoolUnary
                                          op_id: BoolUnary_n
                                          child: {(${ VSub_Name CONF_LIBDIR)}
                                        )
                                    )
                                    (Pipeline
                                      children: [
                                        (C {(__hasgq)} 
                                          {(--libdir) (Lit_Other '=') 
                                            (EscapedLiteralPart
                                              token: <Lit_EscapedChar '\\*'>
                                            )
                                          } {(DQ ($ VSub_At '$@'))}
                                        )
                                      ]
                                      negated: T
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(export)} 
                              {(Lit_VarLike 'CONF_PREFIX=') 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(__hasg)} 
                                          {(--exec-prefix) (Lit_Other '=') 
                                            (EscapedLiteralPart
                                              token: <Lit_EscapedChar '\\*'>
                                            )
                                          } {(DQ ($ VSub_At '$@'))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [5341 5351]
                                )
                              }
                            )
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_z
                                      child: {(${ VSub_Name CONF_PREFIX)}
                                    )
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:CONF_PREFIX)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (C {(__hasg)} 
                                                    {(--prefix) (Lit_Other '=') 
                                                      (EscapedLiteralPart
                                                        token: <Lit_EscapedChar '\\*'>
                                                      )
                                                    } {(DQ ($ VSub_At '$@'))}
                                                  )
                                                ]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [5367 5377]
                                          )
                                        }
                                      spids: [5366]
                                    )
                                  ]
                                  spids: [5366]
                                )
                              ]
                            )
                            (C {(Lit_Other ':')} 
                              {
                                (BracedVarSub
                                  token: <VSub_Name CONF_PREFIX>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VTest_ColonEquals
                                      arg_word: {(${ VSub_Name EPREFIX) (Lit_Slash /) (usr)}
                                    )
                                  spids: [5382 5390]
                                )
                              }
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:CONF_PREFIX)
                                  op: Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name CONF_PREFIX>
                                        suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*=')})
                                        spids: [5394 5398]
                                      )
                                    }
                                  spids: [5393]
                                )
                              ]
                              spids: [5393]
                            )
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobNEqual
                                      left: {(${ VSub_Name CONF_PREFIX)}
                                      right: {(/) (Lit_Other '*')}
                                    )
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:CONF_PREFIX)
                                      op: Equal
                                      rhs: {(DQ (/) (${ VSub_Name CONF_PREFIX))}
                                      spids: [5416]
                                    )
                                  ]
                                  spids: [5416]
                                )
                              ]
                            )
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobNEqual
                                      left: {(${ VSub_Name CONF_LIBDIR)}
                                      right: {(/) (Lit_Other '*')}
                                    )
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:CONF_LIBDIR)
                                      op: Equal
                                      rhs: {(DQ (/) (${ VSub_Name CONF_LIBDIR))}
                                      spids: [5440]
                                    )
                                  ]
                                  spids: [5440]
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:conf_args)
                                  op: PlusEqual
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {(--libdir) (Lit_Other '=') 
                                            (DQ 
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (C {(__strip_duplicate_slashes)} 
                                                        {
                                                          (DQ (${ VSub_Name CONF_PREFIX) 
                                                            (${ VSub_Name CONF_LIBDIR)
                                                          )
                                                        }
                                                      )
                                                    ]
                                                  )
                                                left_token: <Left_CommandSub '$('>
                                                spids: [5456 5467]
                                              )
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [5449]
                                )
                              ]
                              spids: [5449]
                            )
                          ]
                          spids: [16777215 5335]
                        )
                      ]
                      spids: [16777215 5474]
                    )
                    (C {(eval)} {(DQ ('local -a EXTRA_ECONF=(') (${ VSub_Name EXTRA_ECONF) (')'))})
                    (C {(set)} {(--)} {(--prefix) (Lit_Other '=') (DQ (${ VSub_Name EPREFIX)) (/usr)} 
                      {
                        (BracedVarSub
                          token: <VSub_Name CBUILD>
                          suffix_op: 
                            (StringUnary
                              op_id: VTest_ColonPlus
                              arg_word: {('--build=') (${ VSub_Name CBUILD)}
                            )
                          spids: [5511 5518]
                        )
                      } {(--host) (Lit_Other '=') (${ VSub_Name CHOST)} 
                      {
                        (BracedVarSub
                          token: <VSub_Name CTARGET>
                          suffix_op: 
                            (StringUnary
                              op_id: VTest_ColonPlus
                              arg_word: {('--target=') (${ VSub_Name CTARGET)}
                            )
                          spids: [5530 5537]
                        )
                      } {(--mandir) (Lit_Other '=') (DQ (${ VSub_Name EPREFIX)) (/usr/share/man)} 
                      {(--infodir) (Lit_Other '=') (DQ (${ VSub_Name EPREFIX)) (/usr/share/info)} {(--datadir) (Lit_Other '=') (DQ (${ VSub_Name EPREFIX)) (/usr/share)} 
                      {(--sysconfdir) (Lit_Other '=') (DQ (${ VSub_Name EPREFIX)) (/etc)} {(--localstatedir) (Lit_Other '=') (DQ (${ VSub_Name EPREFIX)) (/var/lib)} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name conf_args>
                            bracket_op: (WholeArray op_id:Lit_At)
                            spids: [5597 5602]
                          )
                        )
                      } {(DQ ($ VSub_At '$@'))} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name EXTRA_ECONF>
                            bracket_op: (WholeArray op_id:Lit_At)
                            spids: [5614 5619]
                          )
                        )
                      }
                    )
                    (C {(__vecho)} {(DQ (${ VSub_Name ECONF_SOURCE) (/configure))} 
                      {(DQ ($ VSub_At '$@'))}
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [
                                    (C {(DQ (${ VSub_Name ECONF_SOURCE) (/configure))} 
                                      {(DQ ($ VSub_At '$@'))}
                                    )
                                  ]
                                  negated: T
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-s)} {(config.log)} {(Lit_Other ']')})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(echo)})
                                    (C {(echo)} 
                                      {
                                        (DQ 
                                          (
'!!! Please attach the following file when seeking support:'
                                          )
                                        )
                                      }
                                    )
                                    (C {(echo)} {(DQ ('!!! ') (${ VSub_Name PWD) (/config.log))})
                                  ]
                                  spids: [16777215 5670]
                                )
                              ]
                              spids: [16777215 5694]
                            )
                            (C {(__helpers_die)} {(DQ ('econf failed'))})
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(1)}
                            )
                          ]
                          spids: [16777215 5655]
                        )
                      ]
                      spids: [16777215 5709]
                    )
                  ]
                  spids: [16777215 4671]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-f)} {(DQ (${ VSub_Name ECONF_SOURCE) (/configure))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(die)} {(DQ ('configure is not executable'))})]
                  spids: [5712 5728]
                )
              ]
              else_action: [(C {(die)} {(DQ ('no configure script found'))})]
              spids: [5738 5748]
            )
          ]
          spids: [4412]
        )
      spids: [4408 4411]
    )
    (FuncDef
      name: einstall
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (Pipeline children:[(C {(___eapi_has_einstall)})] negated:T)
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(die)} 
                      {
                        (DQ ("'") (${ VSub_Name FUNCNAME) ("' has been banned for EAPI '") 
                          ($ VSub_Name '$EAPI') ("'")
                        )
                      }
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [16777215 5767]
                )
              ]
              spids: [16777215 5788]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:LOCAL_EXTRA_EINSTALL)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name EXTRA_EINSTALL))}
                  spids: [5798]
                )
              ]
              spids: [5796]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (Pipeline children:[(C {(___eapi_has_prefix_variables)})] negated:T)
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ED)
                          op: Equal
                          rhs: {(${ VSub_Name D)}
                          spids: [5818]
                        )
                      ]
                      spids: [5816]
                    )
                  ]
                  spids: [16777215 5813]
                )
              ]
              spids: [16777215 5824]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:LIBDIR_VAR)
                  op: Equal
                  rhs: {(DQ (LIBDIR_) (${ VSub_Name ABI))}
                  spids: [5827]
                )
              ]
              spids: [5827]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name ABI))} {(-a)} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name LIBDIR_VAR>
                                prefix_op: VSub_Bang
                                spids: [5853 5856]
                              )
                            )
                          } {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CONF_LIBDIR)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name LIBDIR_VAR>
                                  prefix_op: VSub_Bang
                                  spids: [5867 5870]
                                )
                              )
                            }
                          spids: [5865]
                        )
                      ]
                      spids: [5865]
                    )
                  ]
                  spids: [16777215 5862]
                )
              ]
              spids: [16777215 5874]
            )
            (C {(unset)} {(LIBDIR_VAR)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name CONF_LIBDIR))} 
                              {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name CONF_PREFIX>
                                    suffix_op: (StringUnary op_id:VTest_ColonPlus arg_word:{(set)})
                                    spids: [5901 5905]
                                  )
                                )
                              } {(Lit_Other '=')} {(set)} {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:EI_DESTLIBDIR)
                          op: Equal
                          rhs: 
                            {
                              (DQ (${ VSub_Name D) (/) (${ VSub_Name CONF_PREFIX) (/) 
                                (${ VSub_Name CONF_LIBDIR)
                              )
                            }
                          spids: [5918]
                        )
                      ]
                      spids: [5918]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:EI_DESTLIBDIR)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(__strip_duplicate_slashes)} 
                                          {(DQ (${ VSub_Name EI_DESTLIBDIR))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [5936 5944]
                                )
                              )
                            }
                          spids: [5934]
                        )
                      ]
                      spids: [5934]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:LOCAL_EXTRA_EINSTALL)
                          op: Equal
                          rhs: 
                            {
                              (DQ ('libdir=') (${ VSub_Name EI_DESTLIBDIR) (' ') 
                                (${ VSub_Name LOCAL_EXTRA_EINSTALL)
                              )
                            }
                          spids: [5948]
                        )
                      ]
                      spids: [5948]
                    )
                    (C {(unset)} {(EI_DESTLIBDIR)})
                  ]
                  spids: [16777215 5915]
                )
              ]
              spids: [16777215 5966]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-f)} 
                          {(./) (Lit_Other '[') (mM) (Lit_Other ']') (akefile)} {(-o)} {(-f)} {(./GNUmakefile)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ (${ VSub_Name PORTAGE_DEBUG))} 
                                  {(Lit_Other '=') (Lit_Other '=')} {(DQ (1))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C 
                              {
                                (BracedVarSub
                                  token: <VSub_Name MAKE>
                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(make)})
                                  spids: [6018 6022]
                                )
                              } {(-n)} {(Lit_VarLike 'prefix=') (DQ (${ VSub_Name ED) (usr))} 
                              {(Lit_VarLike 'datadir=') (DQ (${ VSub_Name ED) (usr/share))} {(Lit_VarLike 'infodir=') (DQ (${ VSub_Name ED) (usr/share/info))} 
                              {(Lit_VarLike 'localstatedir=') (DQ (${ VSub_Name ED) (var/lib))} {(Lit_VarLike 'mandir=') (DQ (${ VSub_Name ED) (usr/share/man))} 
                              {(Lit_VarLike 'sysconfdir=') (DQ (${ VSub_Name ED) (etc))} {(${ VSub_Name LOCAL_EXTRA_EINSTALL)} {(${ VSub_Name MAKEOPTS)} {(-j1)} {(DQ ($ VSub_At '$@'))} 
                              {(${ VSub_Name EXTRA_EMAKE)} {(install)}
                            )
                          ]
                          spids: [16777215 6015]
                        )
                      ]
                      spids: [16777215 6111]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Pipeline
                              children: [
                                (C 
                                  {
                                    (BracedVarSub
                                      token: <VSub_Name MAKE>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VTest_ColonHyphen
                                          arg_word: {(make)}
                                        )
                                      spids: [6118 6122]
                                    )
                                  } {(Lit_VarLike 'prefix=') (DQ (${ VSub_Name ED) (usr))} 
                                  {(Lit_VarLike 'datadir=') (DQ (${ VSub_Name ED) (usr/share))} {(Lit_VarLike 'infodir=') (DQ (${ VSub_Name ED) (usr/share/info))} 
                                  {(Lit_VarLike 'localstatedir=') (DQ (${ VSub_Name ED) (var/lib))} {(Lit_VarLike 'mandir=') (DQ (${ VSub_Name ED) (usr/share/man))} 
                                  {(Lit_VarLike 'sysconfdir=') (DQ (${ VSub_Name ED) (etc))} {(${ VSub_Name LOCAL_EXTRA_EINSTALL)} {(${ VSub_Name MAKEOPTS)} {(-j1)} {(DQ ($ VSub_At '$@'))} 
                                  {(${ VSub_Name EXTRA_EMAKE)} {(install)}
                                )
                              ]
                              negated: T
                            )
                          ]
                          action: [
                            (C {(__helpers_die)} {(DQ ('einstall failed'))})
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(1)}
                            )
                          ]
                          spids: [16777215 6209]
                        )
                      ]
                      spids: [16777215 6224]
                    )
                  ]
                  spids: [16777215 5992]
                )
              ]
              else_action: [(C {(die)} {(DQ ('no Makefile found'))})]
              spids: [6227 6237]
            )
          ]
          spids: [5757]
        )
      spids: [5753 5756]
    )
    (FuncDef
      name: __eapi0_pkg_nofetch
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{(${ VSub_Name A)}))
                (ControlFlow token:<ControlFlow_Return return>)
              ]
            )
            (C {(elog)} {(DQ ('The following files cannot be fetched for ') (${ VSub_Name PN) (':'))})
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:x) op:Equal spids:[6278])]
              spids: [6276]
            )
            (ForEach
              iter_name: x
              iter_words: [{(${ VSub_Name A)}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [(C {(elog)} {(DQ ('   ') (${ VSub_Name x))})]
                  spids: [6292 6305]
                )
              spids: [6286 6290]
            )
          ]
          spids: [6246]
        )
      spids: [6242 6245]
    )
    (FuncDef
      name: __eapi0_src_unpack
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DBracket expr:(BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name A)}))
                (C {(unpack)} {(${ VSub_Name A)})
              ]
            )
          ]
          spids: [6314]
        )
      spids: [6310 6313]
    )
    (FuncDef
      name: __eapi0_src_compile
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-x)} {(./configure)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(econf)})]
                  spids: [16777215 6357]
                )
              ]
              spids: [16777215 6363]
            )
            (C {(__eapi2_src_compile)})
          ]
          spids: [6342]
        )
      spids: [6338 6341]
    )
    (FuncDef
      name: __eapi0_src_test
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:emake_cmd)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name MAKE>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(make)})
                          spids: [6402 6406]
                        ) (' ') (${ VSub_Name MAKEOPTS) (' ') (${ VSub_Name EXTRA_EMAKE)
                      )
                    }
                  spids: [6400]
                )
              ]
              spids: [6398]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:internal_opts)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [6420]
                )
              ]
              spids: [6418]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(___eapi_default_src_test_disables_parallel_jobs)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:internal_opts)
                          op: PlusEqual
                          rhs: {(DQ (' -j1'))}
                          spids: [6431]
                        )
                      ]
                      spids: [6431]
                    )
                  ]
                  spids: [16777215 6428]
                )
              ]
              spids: [16777215 6437]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {($ VSub_Name '$emake_cmd')} {(${ VSub_Name internal_opts)} {(check)} {(-n)})
                      terminator: <Op_Amp '&'>
                    )
                    (Sentence
                      child: 
                        (SimpleCommand
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [6453]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(__vecho)}
                        {(DQ (${ VSub_Name emake_cmd) (' ') (${ VSub_Name internal_opts) (' check'))}
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 16777215
                          arg_word: {(2)}
                          spids: [6474]
                        )
                      ]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {($ VSub_Name '$emake_cmd')} {(${ VSub_Name internal_opts)} {(check)})
                        (C {(die)} {(DQ ('Make check failed. See above for details.'))})
                      ]
                    )
                  ]
                  spids: [16777215 6458]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {($ VSub_Name '$emake_cmd')} {(${ VSub_Name internal_opts)} {(test)} {(-n)})
                      terminator: <Op_Amp '&'>
                    )
                    (Sentence
                      child: 
                        (SimpleCommand
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [6510]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(__vecho)}
                        {(DQ (${ VSub_Name emake_cmd) (' ') (${ VSub_Name internal_opts) (' test'))}
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 16777215
                          arg_word: {(2)}
                          spids: [6531]
                        )
                      ]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {($ VSub_Name '$emake_cmd')} {(${ VSub_Name internal_opts)} {(test)})
                        (C {(die)} {(DQ ('Make test failed. See above for details.'))})
                      ]
                    )
                  ]
                  spids: [6497 6515]
                )
              ]
              spids: [16777215 6554]
            )
          ]
          spids: [6375]
        )
      spids: [6371 6374]
    )
    (FuncDef
      name: __eapi1_src_compile
      body: 
        (BraceGroup
          children: [(C {(__eapi2_src_configure)}) (C {(__eapi2_src_compile)})]
          spids: [6563]
        )
      spids: [6559 6562]
    )
    (FuncDef
      name: __eapi2_src_prepare
      body: (BraceGroup children:[(C {(Lit_Other ':')})] spids:[6578])
      spids: [6574 6577]
    )
    (FuncDef
      name: __eapi2_src_configure
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_x
                              child: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name ECONF_SOURCE>
                                    suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(.)})
                                    spids: [6599 6603]
                                  ) (/configure)
                                }
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(econf)})]
                  spids: [16777215 6610]
                )
              ]
              spids: [16777215 6616]
            )
          ]
          spids: [6590]
        )
      spids: [6586 6589]
    )
    (FuncDef
      name: __eapi2_src_compile
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DPipe Op_DPipe]
                          children: [
                            (C {(Lit_Other '[')} {(-f)} {(Makefile)} {(Lit_Other ']')})
                            (C {(Lit_Other '[')} {(-f)} {(GNUmakefile)} {(Lit_Other ']')})
                            (C {(Lit_Other '[')} {(-f)} {(makefile)} {(Lit_Other ']')})
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [(C {(emake)}) (C {(die)} {(DQ ('emake failed'))})]
                    )
                  ]
                  spids: [16777215 6659]
                )
              ]
              spids: [16777215 6673]
            )
          ]
          spids: [6625]
        )
      spids: [6621 6624]
    )
    (FuncDef
      name: __eapi4_src_install
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalOr
                              left: (BoolUnary op_id:BoolUnary_f child:{(Makefile)})
                              right: 
                                (LogicalOr
                                  left: (BoolUnary op_id:BoolUnary_f child:{(GNUmakefile)})
                                  right: (BoolUnary op_id:BoolUnary_f child:{(makefile)})
                                )
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(emake)} {(Lit_VarLike 'DESTDIR=') (DQ (${ VSub_Name D))} {(install)})]
                  spids: [16777215 6709]
                )
              ]
              spids: [16777215 6724]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [(C {(Assign_Declare declare)} {(-p)} {(DOCS)})]
                          negated: T
                        )
                      terminator: <Op_Amp '&'>
                    )
                    (Sentence
                      child: 
                        (SimpleCommand
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [6739]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:d) op:Equal spids:[6749])]
                      spids: [6747]
                    )
                    (ForEach
                      iter_name: d
                      iter_words: [
                        {(README) (Lit_Other '*')}
                        {(ChangeLog)}
                        {(AUTHORS)}
                        {(NEWS)}
                        {(TODO)}
                        {(CHANGES)}
                        {(THANKS)}
                        {(BUGS)}
                        {(FAQ)}
                        {(CREDITS)}
                        {(CHANGELOG)}
                      ]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (DBracket
                                  expr: (BoolUnary op_id:BoolUnary_s child:{(DQ (${ VSub_Name d))})
                                )
                                (C {(dodoc)} {(DQ (${ VSub_Name d))})
                              ]
                            )
                          ]
                          spids: [6785 6811]
                        )
                      spids: [6757 6783]
                    )
                  ]
                  spids: [16777215 6744]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [(C {(Assign_Declare declare)} {(-p)} {(DOCS)})]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [6818 6824]
                                  )
                                }
                              right: {(DQ ('declare -a ')) (Lit_Other '*')}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(dodoc)} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name DOCS>
                            bracket_op: (WholeArray op_id:Lit_At)
                            spids: [6843 6848]
                          )
                        )
                      }
                    )
                  ]
                  spids: [6814 6837]
                )
              ]
              else_action: [(C {(dodoc)} {(${ VSub_Name DOCS)})]
              spids: [6852 6862]
            )
          ]
          spids: [6682]
        )
      spids: [6678 6681]
    )
    (FuncDef
      name: __eapi6_src_prepare
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (SimpleCommand
                                            words: [{(Assign_Declare declare)} {(-p)} {(PATCHES)}]
                                            redirects: [
                                              (Redir
                                                op_id: Redir_Great
                                                fd: 2
                                                arg_word: {(/dev/null)}
                                                spids: [6885]
                                              )
                                            ]
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [6878 6887]
                                  )
                                }
                              right: {(DQ ('declare -a')) (Lit_Other '*')}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name PATCHES>
                                    bracket_op: (WholeArray op_id:Lit_At)
                                    spids: [6906 6911]
                                  )
                                }
                            )
                        )
                        (C {(eapply)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name PATCHES>
                                bracket_op: (WholeArray op_id:Lit_At)
                                spids: [6920 6925]
                              )
                            )
                          }
                        )
                      ]
                    )
                  ]
                  spids: [16777215 6899]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name PATCHES)})
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(eapply)} {(${ VSub_Name PATCHES)})]
                  spids: [6929 6942]
                )
              ]
              spids: [16777215 6952]
            )
            (C {(eapply_user)})
          ]
          spids: [6871]
        )
      spids: [6867 6870]
    )
    (FuncDef
      name: __eapi6_src_install
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalOr
                              left: (BoolUnary op_id:BoolUnary_f child:{(Makefile)})
                              right: 
                                (LogicalOr
                                  left: (BoolUnary op_id:BoolUnary_f child:{(GNUmakefile)})
                                  right: (BoolUnary op_id:BoolUnary_f child:{(makefile)})
                                )
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(emake)} {(Lit_VarLike 'DESTDIR=') (DQ (${ VSub_Name D))} {(install)})]
                  spids: [16777215 6992]
                )
              ]
              spids: [16777215 7007]
            )
            (C {(einstalldocs)})
          ]
          spids: [6965]
        )
      spids: [6961 6964]
    )
    (FuncDef
      name: has_version
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:atom) op:Equal spids:[7044])
                (assign_pair lhs:(LhsName name:eroot) op:Equal spids:[7046])
                (assign_pair
                  lhs: (LhsName name:host_root)
                  op: Equal
                  rhs: {(false)}
                  spids: [7048]
                )
                (assign_pair
                  lhs: (LhsName name:root)
                  op: Equal
                  rhs: {(${ VSub_Name ROOT)}
                  spids: [7051]
                )
              ]
              spids: [7042]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {($ VSub_Number '$1')}
                              right: {(--host-root)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:host_root)
                          op: Equal
                          rhs: {(true)}
                          spids: [7074]
                        )
                      ]
                      spids: [7074]
                    )
                    (C {(shift)})
                  ]
                  spids: [16777215 7071]
                )
              ]
              spids: [16777215 7081]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:atom)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [7084]
                )
              ]
              spids: [7084]
            )
            (C {(shift)})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(0)} {(Lit_Other ']')})
                (C {(die)} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name FUNCNAME>
                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                        spids: [7106 7111]
                      ) (': unused argument(s): ') ($ VSub_Star '$*')
                    )
                  }
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [(Sentence child:(C {(${ VSub_Name host_root)}) terminator:<Op_Semi ';'>)]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [
                                    (C {(___eapi_best_version_and_has_version_support_--host-root)})
                                  ]
                                  negated: T
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [7142 7147]
                                  ) (': option --host-root is not supported with EAPI ') (${ VSub_Name EAPI)
                                )
                              }
                            )
                          ]
                          spids: [16777215 7136]
                        )
                      ]
                      spids: [16777215 7155]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:root) op:Equal rhs:{(/)} spids:[7158])]
                      spids: [7158]
                    )
                  ]
                  spids: [16777215 7126]
                )
              ]
              spids: [16777215 7162]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(___eapi_has_prefix_variables)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(${ VSub_Name host_root)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:eroot)
                                  op: Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name root>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VOp1_Percent
                                            arg_word: {(Lit_Slash /)}
                                          )
                                        spids: [7198 7202]
                                      ) (${ VSub_Name PORTAGE_OVERRIDE_EPREFIX) (/)
                                    }
                                  spids: [7197]
                                )
                              ]
                              spids: [7197]
                            )
                          ]
                          spids: [16777215 7194]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:eroot)
                              op: Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name root>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_Percent
                                        arg_word: {(Lit_Slash /)}
                                      )
                                    spids: [7213 7217]
                                  ) (${ VSub_Name EPREFIX) (/)
                                }
                              spids: [7212]
                            )
                          ]
                          spids: [7212]
                        )
                      ]
                      spids: [7209 7224]
                    )
                  ]
                  spids: [16777215 7171]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:eroot)
                      op: Equal
                      rhs: {(${ VSub_Name root)}
                      spids: [7230]
                    )
                  ]
                  spids: [7230]
                )
              ]
              spids: [7227 7236]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: {($ VSub_Name '$PORTAGE_IPC_DAEMON')}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(DQ ($ VSub_Name '$PORTAGE_BIN_PATH')) (/ebuild-ipc)} {(has_version)} 
                      {(DQ (${ VSub_Name eroot))} {(DQ (${ VSub_Name atom))}
                    )
                  ]
                  spids: [16777215 7251]
                )
              ]
              else_action: [
                (C {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/ebuild-helpers/portageq))} {(has_version)} 
                  {(DQ (${ VSub_Name eroot))} {(DQ (${ VSub_Name atom))}
                )
              ]
              spids: [7274 7299]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:retval)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [7304]
                )
              ]
              spids: [7302]
            )
            (Case
              to_match: {(DQ (${ VSub_Name retval))}
              arms: [
                (case_arm
                  pat_list: [{(0)} {(1)}]
                  action: [
                    (ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {(${ VSub_Name retval)}
                    )
                  ]
                  spids: [7319 7322 7332 16777215]
                )
                (case_arm
                  pat_list: [{(2)}]
                  action: [
                    (C {(die)} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name FUNCNAME>
                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                            spids: [7342 7347]
                          ) (': invalid atom: ') (${ VSub_Name atom)
                        )
                      }
                    )
                  ]
                  spids: [7335 7336 7355 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [7381 7386]
                                  ) (': unexpected ebuild-ipc exit code: ') (${ VSub_Name retval)
                                )
                              }
                            )
                          ]
                          spids: [16777215 7375]
                        )
                      ]
                      else_action: [
                        (C {(die)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name FUNCNAME>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                spids: [7400 7405]
                              ) (': unexpected portageq exit code: ') (${ VSub_Name retval)
                            )
                          }
                        )
                      ]
                      spids: [7394 7413]
                    )
                  ]
                  spids: [7358 7359 7416 16777215]
                )
              ]
              spids: [7308 7316 7419]
            )
          ]
          spids: [7038]
        )
      spids: [7034 7037]
    )
    (FuncDef
      name: best_version
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:atom) op:Equal spids:[7452])
                (assign_pair lhs:(LhsName name:eroot) op:Equal spids:[7454])
                (assign_pair
                  lhs: (LhsName name:host_root)
                  op: Equal
                  rhs: {(false)}
                  spids: [7456]
                )
                (assign_pair
                  lhs: (LhsName name:root)
                  op: Equal
                  rhs: {(${ VSub_Name ROOT)}
                  spids: [7459]
                )
              ]
              spids: [7450]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {($ VSub_Number '$1')}
                              right: {(--host-root)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:host_root)
                          op: Equal
                          rhs: {(true)}
                          spids: [7482]
                        )
                      ]
                      spids: [7482]
                    )
                    (C {(shift)})
                  ]
                  spids: [16777215 7479]
                )
              ]
              spids: [16777215 7489]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:atom)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [7492]
                )
              ]
              spids: [7492]
            )
            (C {(shift)})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(0)} {(Lit_Other ']')})
                (C {(die)} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name FUNCNAME>
                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                        spids: [7514 7519]
                      ) (': unused argument(s): ') ($ VSub_Star '$*')
                    )
                  }
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [(Sentence child:(C {(${ VSub_Name host_root)}) terminator:<Op_Semi ';'>)]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [
                                    (C {(___eapi_best_version_and_has_version_support_--host-root)})
                                  ]
                                  negated: T
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [7550 7555]
                                  ) (': option --host-root is not supported with EAPI ') (${ VSub_Name EAPI)
                                )
                              }
                            )
                          ]
                          spids: [16777215 7544]
                        )
                      ]
                      spids: [16777215 7563]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:root) op:Equal rhs:{(/)} spids:[7566])]
                      spids: [7566]
                    )
                  ]
                  spids: [16777215 7534]
                )
              ]
              spids: [16777215 7570]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(___eapi_has_prefix_variables)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(${ VSub_Name host_root)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:eroot)
                                  op: Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name root>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VOp1_Percent
                                            arg_word: {(Lit_Slash /)}
                                          )
                                        spids: [7606 7610]
                                      ) (${ VSub_Name PORTAGE_OVERRIDE_EPREFIX) (/)
                                    }
                                  spids: [7605]
                                )
                              ]
                              spids: [7605]
                            )
                          ]
                          spids: [16777215 7602]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:eroot)
                              op: Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name root>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_Percent
                                        arg_word: {(Lit_Slash /)}
                                      )
                                    spids: [7621 7625]
                                  ) (${ VSub_Name EPREFIX) (/)
                                }
                              spids: [7620]
                            )
                          ]
                          spids: [7620]
                        )
                      ]
                      spids: [7617 7632]
                    )
                  ]
                  spids: [16777215 7579]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:eroot)
                      op: Equal
                      rhs: {(${ VSub_Name root)}
                      spids: [7638]
                    )
                  ]
                  spids: [7638]
                )
              ]
              spids: [7635 7644]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: {($ VSub_Name '$PORTAGE_IPC_DAEMON')}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(DQ ($ VSub_Name '$PORTAGE_BIN_PATH')) (/ebuild-ipc)} {(best_version)} 
                      {(DQ (${ VSub_Name eroot))} {(DQ (${ VSub_Name atom))}
                    )
                  ]
                  spids: [16777215 7659]
                )
              ]
              else_action: [
                (C {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/ebuild-helpers/portageq))} {(best_version)} 
                  {(DQ (${ VSub_Name eroot))} {(DQ (${ VSub_Name atom))}
                )
              ]
              spids: [7682 7707]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:retval)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [7712]
                )
              ]
              spids: [7710]
            )
            (Case
              to_match: {(DQ (${ VSub_Name retval))}
              arms: [
                (case_arm
                  pat_list: [{(0)} {(1)}]
                  action: [
                    (ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {(${ VSub_Name retval)}
                    )
                  ]
                  spids: [7727 7730 7740 16777215]
                )
                (case_arm
                  pat_list: [{(2)}]
                  action: [
                    (C {(die)} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name FUNCNAME>
                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                            spids: [7750 7755]
                          ) (': invalid atom: ') (${ VSub_Name atom)
                        )
                      }
                    )
                  ]
                  spids: [7743 7744 7763 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [7789 7794]
                                  ) (': unexpected ebuild-ipc exit code: ') (${ VSub_Name retval)
                                )
                              }
                            )
                          ]
                          spids: [16777215 7783]
                        )
                      ]
                      else_action: [
                        (C {(die)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name FUNCNAME>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                spids: [7808 7813]
                              ) (': unexpected portageq exit code: ') (${ VSub_Name retval)
                            )
                          }
                        )
                      ]
                      spids: [7802 7821]
                    )
                  ]
                  spids: [7766 7767 7824 16777215]
                )
              ]
              spids: [7716 7724 7827]
            )
          ]
          spids: [7446]
        )
      spids: [7442 7445]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_get_libdir)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: get_libdir
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:libdir_var)
                          op: Equal
                          rhs: {(DQ (LIBDIR_) (${ VSub_Name ABI))}
                          spids: [7849]
                        )
                      ]
                      spids: [7847]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:libdir)
                          op: Equal
                          rhs: {(DQ (lib))}
                          spids: [7860]
                        )
                      ]
                      spids: [7858]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name ABI)})
                              right: 
                                (BoolUnary
                                  op_id: BoolUnary_n
                                  child: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name libdir_var>
                                        prefix_op: VSub_Bang
                                        spids: [7879 7882]
                                      )
                                    }
                                )
                            )
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:libdir)
                              op: Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name libdir_var>
                                    prefix_op: VSub_Bang
                                    spids: [7889 7892]
                                  )
                                }
                              spids: [7888]
                            )
                          ]
                          spids: [7888]
                        )
                      ]
                    )
                    (C {(echo)} {(DQ (${ VSub_Name libdir))})
                  ]
                  spids: [7844]
                )
              spids: [7840 7843]
            )
          ]
          spids: [16777215 7837]
        )
      ]
      spids: [16777215 7907]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_einstalldocs)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: einstalldocs
              body: 
                (BraceGroup
                  children: [
                    (Subshell
                      child: 
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (Pipeline
                                      children: [(C {(Assign_Declare declare)} {(-p)} {(DOCS)})]
                                      negated: T
                                    )
                                  terminator: <Op_Amp '&'>
                                )
                                (Sentence
                                  child: 
                                    (SimpleCommand
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 16777215
                                          arg_word: {(/dev/null)}
                                          spids: [7939]
                                        )
                                      ]
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_Local
                                  pairs: [(assign_pair lhs:(LhsName name:d) op:Equal spids:[7949])]
                                  spids: [7947]
                                )
                                (ForEach
                                  iter_name: d
                                  iter_words: [
                                    {(README) (Lit_Other '*')}
                                    {(ChangeLog)}
                                    {(AUTHORS)}
                                    {(NEWS)}
                                    {(TODO)}
                                    {(CHANGES)}
                                    {(THANKS)}
                                    {(BUGS)}
                                    {(FAQ)}
                                    {(CREDITS)}
                                    {(CHANGELOG)}
                                  ]
                                  do_arg_iter: F
                                  body: 
                                    (DoGroup
                                      children: [
                                        (AndOr
                                          ops: [Op_DAmp Op_DAmp]
                                          children: [
                                            (DBracket
                                              expr: 
                                                (LogicalAnd
                                                  left: 
                                                    (BoolUnary
                                                      op_id: BoolUnary_f
                                                      child: {(${ VSub_Name d)}
                                                    )
                                                  right: 
                                                    (BoolUnary
                                                      op_id: BoolUnary_s
                                                      child: {(${ VSub_Name d)}
                                                    )
                                                )
                                            )
                                            (C {(docinto)} {(/)})
                                            (C {(dodoc)} {(DQ (${ VSub_Name d))})
                                          ]
                                        )
                                      ]
                                      spids: [7985 8023]
                                    )
                                  spids: [7957 7983]
                                )
                              ]
                              spids: [16777215 7944]
                            )
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (C {(Assign_Declare declare)} {(-p)} {(DOCS)})
                                                    ]
                                                  )
                                                left_token: <Left_CommandSub '$('>
                                                spids: [8030 8036]
                                              )
                                            }
                                          right: {(DQ ('declare -a')) (Lit_Other '*')}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (AndOr
                                  ops: [Op_DAmp Op_DAmp]
                                  children: [
                                    (DBracket
                                      expr: 
                                        (WordTest
                                          w: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name DOCS>
                                                bracket_op: (WholeArray op_id:Lit_At)
                                                spids: [8054 8059]
                                              )
                                            }
                                        )
                                    )
                                    (C {(docinto)} {(/)})
                                    (C {(dodoc)} {(-r)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name DOCS>
                                            bracket_op: (WholeArray op_id:Lit_At)
                                            spids: [8076 8081]
                                          )
                                        )
                                      }
                                    )
                                  ]
                                )
                              ]
                              spids: [8026 8049]
                            )
                          ]
                          else_action: [
                            (AndOr
                              ops: [Op_DAmp Op_DAmp]
                              children: [
                                (DBracket
                                  expr: (WordTest w:{(${ VSub_Name DOCS)})
                                )
                                (C {(docinto)} {(/)})
                                (C {(dodoc)} {(-r)} {(${ VSub_Name DOCS)})
                              ]
                            )
                          ]
                          spids: [8085 8113]
                        )
                      spids: [7925 8116]
                    )
                    (Subshell
                      child: 
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (SimpleCommand
                                                        words: [
                                                          {(Assign_Declare declare)}
                                                          {(-p)}
                                                          {(HTML_DOCS)}
                                                        ]
                                                        redirects: [
                                                          (Redir
                                                            op_id: Redir_Great
                                                            fd: 2
                                                            arg_word: {(/dev/null)}
                                                            spids: [8134]
                                                          )
                                                        ]
                                                      )
                                                    ]
                                                  )
                                                left_token: <Left_CommandSub '$('>
                                                spids: [8127 8136]
                                              )
                                            }
                                          right: {(DQ ('declare -a')) (Lit_Other '*')}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (AndOr
                                  ops: [Op_DAmp Op_DAmp]
                                  children: [
                                    (DBracket
                                      expr: 
                                        (WordTest
                                          w: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name HTML_DOCS>
                                                bracket_op: (WholeArray op_id:Lit_At)
                                                spids: [8154 8159]
                                              )
                                            }
                                        )
                                    )
                                    (C {(docinto)} {(html)})
                                    (C {(dodoc)} {(-r)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name HTML_DOCS>
                                            bracket_op: (WholeArray op_id:Lit_At)
                                            spids: [8178 8183]
                                          )
                                        )
                                      }
                                    )
                                  ]
                                )
                              ]
                              spids: [16777215 8149]
                            )
                          ]
                          else_action: [
                            (AndOr
                              ops: [Op_DAmp Op_DAmp]
                              children: [
                                (DBracket
                                  expr: (WordTest w:{(${ VSub_Name HTML_DOCS)})
                                )
                                (C {(docinto)} {(html)})
                                (C {(dodoc)} {(-r)} {(${ VSub_Name HTML_DOCS)})
                              ]
                            )
                          ]
                          spids: [8187 8217]
                        )
                      spids: [8120 8220]
                    )
                  ]
                  spids: [7922]
                )
              spids: [7918 7921]
            )
          ]
          spids: [16777215 7915]
        )
      ]
      spids: [16777215 8225]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_eapply)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: eapply
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:failed)
                          op: Equal
                          spids: [8245]
                        )
                        (assign_pair
                          lhs: (LhsName name:patch_cmd)
                          op: Equal
                          rhs: {(patch)}
                          spids: [8247]
                        )
                      ]
                      spids: [8243]
                    )
                    (Assignment
                      keyword: Assign_Local
                      flags: [-x]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:LC_COLLATE)
                          op: Equal
                          rhs: {(POSIX)}
                          spids: [8255]
                        )
                      ]
                      spids: [8251]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (SimpleCommand
                          words: [{(type)} {(-P)} {(gpatch)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [8270]
                            )
                          ]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:patch_cmd)
                              op: Equal
                              rhs: {(gpatch)}
                              spids: [8276]
                            )
                          ]
                          spids: [8276]
                        )
                      ]
                    )
                    (FuncDef
                      name: _eapply_patch
                      body: 
                        (BraceGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:f)
                                  op: Equal
                                  rhs: {(${ VSub_Number 1)}
                                  spids: [8290]
                                )
                              ]
                              spids: [8288]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:prefix)
                                  op: Equal
                                  rhs: {(${ VSub_Number 2)}
                                  spids: [8298]
                                )
                              ]
                              spids: [8296]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:started_applying)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [8305]
                                )
                              ]
                              spids: [8305]
                            )
                            (C {(ebegin)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name prefix>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VTest_ColonHyphen
                                        arg_word: {('Applying ')}
                                      )
                                    spids: [8312 8316]
                                  ) 
                                  (BracedVarSub
                                    token: <VSub_Name f>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_DPound
                                        arg_word: {('*') (Lit_Slash /)}
                                      )
                                    spids: [8317 8322]
                                  )
                                )
                              }
                            )
                            (SimpleCommand
                              words: [
                                {(${ VSub_Name patch_cmd)}
                                {(-p1)}
                                {(-f)}
                                {(-s)}
                                {(-g0)}
                                {(--no-backup-if-mismatch)}
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name patch_options>
                                      bracket_op: (WholeArray op_id:Lit_At)
                                      spids: [8363 8368]
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Less
                                  fd: 16777215
                                  arg_word: {(DQ (${ VSub_Name f))}
                                  spids: [8371]
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:failed)
                                  op: Equal
                                  rhs: {(${ VSub_QMark '?')}
                                  spids: [8380]
                                )
                              ]
                              spids: [8380]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [(C {(eend)} {(DQ (${ VSub_Name failed))})]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(__helpers_die)} 
                                      {
                                        (DQ ('patch -p1 ') 
                                          (BracedVarSub
                                            token: <VSub_Name patch_options>
                                            bracket_op: (WholeArray op_id:Arith_Star)
                                            spids: [8406 8411]
                                          ) (' failed with ') (${ VSub_Name f)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 8399]
                                )
                              ]
                              spids: [16777215 8419]
                            )
                          ]
                          spids: [8285]
                        )
                      spids: [8281 8284]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:patch_options)
                          op: Equal
                          rhs: {(ArrayLiteralPart)}
                          spids: [8428]
                        )
                        (assign_pair
                          lhs: (LhsName name:files)
                          op: Equal
                          rhs: {(ArrayLiteralPart)}
                          spids: [8432]
                        )
                      ]
                      spids: [8426]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:i)
                          op: Equal
                          spids: [8439]
                        )
                        (assign_pair
                          lhs: (LhsName name:found_doublehyphen)
                          op: Equal
                          spids: [8441]
                        )
                      ]
                      spids: [8437]
                    )
                    (ForExpr
                      init: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:i)
                          right: (ArithWord w:{(Lit_Digits 1)})
                        )
                      cond: 
                        (ArithBinary
                          op_id: Arith_LessEqual
                          left: (ArithVarRef name:i)
                          right: 
                            (ArithWord
                              w: 
                                {
                                  (BracedVarSub
                                    token: <VSub_At '@'>
                                    prefix_op: VSub_Pound
                                    spids: [8463 8466]
                                  )
                                }
                            )
                        )
                      update: (UnaryAssign op_id:Arith_DPlus child:(LhsName name:i))
                      body: 
                        (DoGroup
                          children: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobDEqual
                                              left: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_At '@'>
                                                    suffix_op: 
                                                      (Slice
                                                        begin: (ArithVarRef name:i)
                                                        length: (ArithWord w:{(Lit_Digits 1)})
                                                      )
                                                    spids: [8483 8489]
                                                  )
                                                }
                                              right: {(--)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:patch_options)
                                          op: Equal
                                          rhs: 
                                            {
                                              (ArrayLiteralPart
                                                words: [
                                                  {
                                                    (DQ 
                                                      (BracedVarSub
                                                        token: <VSub_At '@'>
                                                        suffix_op: 
                                                          (Slice
                                                            begin: (ArithWord w:{(Lit_Digits 1)})
                                                            length: 
                                                              (ArithBinary
                                                                op_id: Arith_Minus
                                                                left: (ArithVarRef name:i)
                                                                right: (ArithWord w:{(Lit_Digits 1)})
                                                              )
                                                          )
                                                        spids: [8505 8513]
                                                      )
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [8501]
                                        )
                                      ]
                                      spids: [8501]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:files)
                                          op: Equal
                                          rhs: 
                                            {
                                              (ArrayLiteralPart
                                                words: [
                                                  {
                                                    (DQ 
                                                      (BracedVarSub
                                                        token: <VSub_At '@'>
                                                        suffix_op: 
                                                          (Slice
                                                            begin: 
                                                              (ArithBinary
                                                                op_id: Arith_Plus
                                                                left: (ArithVarRef name:i)
                                                                right: (ArithWord w:{(Lit_Digits 1)})
                                                              )
                                                          )
                                                        spids: [8523 8529]
                                                      )
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [8519]
                                        )
                                      ]
                                      spids: [8519]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:found_doublehyphen)
                                          op: Equal
                                          rhs: {(1)}
                                          spids: [8535]
                                        )
                                      ]
                                      spids: [8535]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [16777215 8498]
                                )
                              ]
                              spids: [16777215 8542]
                            )
                          ]
                          spids: [8476 8545]
                        )
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_z
                                      child: {(${ VSub_Name found_doublehyphen)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (ForExpr
                              init: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:i)
                                  right: (ArithWord w:{(Lit_Digits 1)})
                                )
                              cond: 
                                (ArithBinary
                                  op_id: Arith_LessEqual
                                  left: (ArithVarRef name:i)
                                  right: 
                                    (ArithWord
                                      w: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_At '@'>
                                            prefix_op: VSub_Pound
                                            spids: [8584 8587]
                                          )
                                        }
                                    )
                                )
                              update: (UnaryAssign op_id:Arith_DPlus child:(LhsName name:i))
                              body: 
                                (DoGroup
                                  children: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DBracket
                                                  expr: 
                                                    (BoolBinary
                                                      op_id: BoolBinary_GlobNEqual
                                                      left: 
                                                        {
                                                          (BracedVarSub
                                                            token: <VSub_At '@'>
                                                            suffix_op: 
                                                              (Slice
                                                                begin: (ArithVarRef name:i)
                                                                length: (ArithWord w:{(Lit_Digits 1)})
                                                              )
                                                            spids: [8604 8610]
                                                          )
                                                        }
                                                      right: {(-) (Lit_Other '*')}
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:patch_options)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (ArrayLiteralPart
                                                        words: [
                                                          {
                                                            (DQ 
                                                              (BracedVarSub
                                                                token: <VSub_At '@'>
                                                                suffix_op: 
                                                                  (Slice
                                                                    begin: 
                                                                      (ArithWord
                                                                        w: {(Lit_Digits 1)}
                                                                      )
                                                                    length: 
                                                                      (ArithBinary
                                                                        op_id: Arith_Minus
                                                                        left: (ArithVarRef name:i)
                                                                        right: 
                                                                          (ArithWord
                                                                            w: {(Lit_Digits 1)}
                                                                          )
                                                                      )
                                                                  )
                                                                spids: [8627 8635]
                                                              )
                                                            )
                                                          }
                                                        ]
                                                      )
                                                    }
                                                  spids: [8623]
                                                )
                                              ]
                                              spids: [8623]
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:files)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (ArrayLiteralPart
                                                        words: [
                                                          {
                                                            (DQ 
                                                              (BracedVarSub
                                                                token: <VSub_At '@'>
                                                                suffix_op: 
                                                                  (Slice
                                                                    begin: (ArithVarRef name:i)
                                                                  )
                                                                spids: [8645 8649]
                                                              )
                                                            )
                                                          }
                                                        ]
                                                      )
                                                    }
                                                  spids: [8641]
                                                )
                                              ]
                                              spids: [8641]
                                            )
                                            (ControlFlow
                                              token: <ControlFlow_Break break>
                                            )
                                          ]
                                          spids: [16777215 8620]
                                        )
                                      ]
                                      spids: [16777215 8658]
                                    )
                                  ]
                                  spids: [8597 8661]
                                )
                            )
                            (ForEach
                              iter_name: i
                              iter_words: [
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name files>
                                      bracket_op: (WholeArray op_id:Lit_At)
                                      spids: [8676 8681]
                                    )
                                  )
                                }
                              ]
                              do_arg_iter: F
                              body: 
                                (DoGroup
                                  children: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DBracket
                                                  expr: 
                                                    (BoolBinary
                                                      op_id: BoolBinary_GlobDEqual
                                                      left: {(${ VSub_Name i)}
                                                      right: {(-) (Lit_Other '*')}
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(die)} 
                                              {
                                                (DQ 
                                                  (
'eapply: all options must be passed before non-options'
                                                  )
                                                )
                                              }
                                            )
                                          ]
                                          spids: [16777215 8704]
                                        )
                                      ]
                                      spids: [16777215 8714]
                                    )
                                  ]
                                  spids: [8685 8717]
                                )
                              spids: [8674 8683]
                            )
                          ]
                          spids: [16777215 8566]
                        )
                      ]
                      spids: [16777215 8720]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_z
                                      child: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name files>
                                            bracket_op: (WholeArray op_id:Lit_At)
                                            spids: [8730 8735]
                                          )
                                        }
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(die)} {(DQ ('eapply: no files specified'))})]
                          spids: [16777215 8740]
                        )
                      ]
                      spids: [16777215 8750]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:f) op:Equal spids:[8756])]
                      spids: [8754]
                    )
                    (ForEach
                      iter_name: f
                      iter_words: [
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name files>
                              bracket_op: (WholeArray op_id:Lit_At)
                              spids: [8766 8771]
                            )
                          )
                        }
                      ]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: (BoolUnary op_id:BoolUnary_d child:{(${ VSub_Name f)})
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (FuncDef
                                      name: _eapply_get_files
                                      body: 
                                        (BraceGroup
                                          children: [
                                            (Assignment
                                              keyword: Assign_Local
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:LC_ALL)
                                                  op: Equal
                                                  rhs: {(POSIX)}
                                                  spids: [8803]
                                                )
                                              ]
                                              spids: [8801]
                                            )
                                            (Assignment
                                              keyword: Assign_Local
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:prev_shopt)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (CommandSubPart
                                                        command_list: 
                                                          (CommandList
                                                            children: [
                                                              (C {(shopt)} {(-p)} {(nullglob)})
                                                            ]
                                                          )
                                                        left_token: <Left_CommandSub '$('>
                                                        spids: [8810 8816]
                                                      )
                                                    }
                                                  spids: [8809]
                                                )
                                              ]
                                              spids: [8807]
                                            )
                                            (C {(shopt)} {(-s)} {(nullglob)})
                                            (Assignment
                                              keyword: Assign_Local
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:f)
                                                  op: Equal
                                                  spids: [8828]
                                                )
                                              ]
                                              spids: [8826]
                                            )
                                            (ForEach
                                              iter_name: f
                                              iter_words: [
                                                {(DQ (${ VSub_Number 1)) (/) (Lit_Other '*')}
                                              ]
                                              do_arg_iter: F
                                              body: 
                                                (DoGroup
                                                  children: [
                                                    (If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (Sentence
                                                              child: 
                                                                (DBracket
                                                                  expr: 
                                                                    (LogicalOr
                                                                      left: 
                                                                        (BoolBinary
                                                                          op_id: 
BoolBinary_GlobDEqual
                                                                          left: {(${ VSub_Name f)}
                                                                          right: 
                                                                            {(Lit_Other '*') (.diff)}
                                                                        )
                                                                      right: 
                                                                        (BoolBinary
                                                                          op_id: 
BoolBinary_GlobDEqual
                                                                          left: {(${ VSub_Name f)}
                                                                          right: 
                                                                            {(Lit_Other '*') 
                                                                              (.patch)
                                                                            }
                                                                        )
                                                                    )
                                                                )
                                                              terminator: <Op_Semi ';'>
                                                            )
                                                          ]
                                                          action: [
                                                            (Assignment
                                                              keyword: Assign_None
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (LhsName name:files)
                                                                  op: PlusEqual
                                                                  rhs: 
                                                                    {
                                                                      (ArrayLiteralPart
                                                                        words: [{(DQ (${ VSub_Name f))}]
                                                                      )
                                                                    }
                                                                  spids: [8879]
                                                                )
                                                              ]
                                                              spids: [8879]
                                                            )
                                                          ]
                                                          spids: [16777215 8876]
                                                        )
                                                      ]
                                                      spids: [16777215 8891]
                                                    )
                                                  ]
                                                  spids: [8846 8894]
                                                )
                                              spids: [8836 8844]
                                            )
                                            (C {(${ VSub_Name prev_shopt)})
                                          ]
                                          spids: [8798]
                                        )
                                      spids: [8794 8797]
                                    )
                                    (Assignment
                                      keyword: Assign_Local
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:files)
                                          op: Equal
                                          rhs: {(ArrayLiteralPart)}
                                          spids: [8908]
                                        )
                                      ]
                                      spids: [8906]
                                    )
                                    (C {(_eapply_get_files)} {(DQ (${ VSub_Name f))})
                                    (AndOr
                                      ops: [Op_DAmp]
                                      children: [
                                        (DBracket
                                          expr: 
                                            (BoolUnary
                                              op_id: BoolUnary_z
                                              child: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name files>
                                                    bracket_op: (WholeArray op_id:Lit_At)
                                                    spids: [8926 8931]
                                                  )
                                                }
                                            )
                                        )
                                        (C {(die)} 
                                          {
                                            (DQ ('No *.{patch,diff} files in directory ') 
                                              (${ VSub_Name f)
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (C {(einfo)} 
                                      {(DQ ('Applying patches from ') (${ VSub_Name f) (' ...'))}
                                    )
                                    (Assignment
                                      keyword: Assign_Local
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:f2)
                                          op: Equal
                                          spids: [8961]
                                        )
                                      ]
                                      spids: [8959]
                                    )
                                    (ForEach
                                      iter_name: f2
                                      iter_words: [
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name files>
                                              bracket_op: (WholeArray op_id:Lit_At)
                                              spids: [8971 8976]
                                            )
                                          )
                                        }
                                      ]
                                      do_arg_iter: F
                                      body: 
                                        (DoGroup
                                          children: [
                                            (C {(_eapply_patch)} {(DQ (${ VSub_Name f2))} {(SQ <'  '>)})
                                            (AndOr
                                              ops: [Op_DAmp]
                                              children: [
                                                (DBracket
                                                  expr: 
                                                    (BoolBinary
                                                      op_id: BoolBinary_ne
                                                      left: {(${ VSub_Name failed)}
                                                      right: {(0)}
                                                    )
                                                )
                                                (ControlFlow
                                                  token: <ControlFlow_Return return>
                                                  arg_word: {(DQ (${ VSub_Name failed))}
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [8980 9024]
                                        )
                                      spids: [8969 8978]
                                    )
                                  ]
                                  spids: [16777215 8791]
                                )
                              ]
                              else_action: [
                                (C {(_eapply_patch)} {(DQ (${ VSub_Name f))})
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_ne
                                          left: {(${ VSub_Name failed)}
                                          right: {(0)}
                                        )
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(DQ (${ VSub_Name failed))}
                                    )
                                  ]
                                )
                              ]
                              spids: [9027 9067]
                            )
                          ]
                          spids: [8775 9070]
                        )
                      spids: [8764 8773]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [8240]
                )
              spids: [8236 8239]
            )
          ]
          spids: [16777215 8233]
        )
      ]
      spids: [16777215 9081]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_eapply_user)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: eapply_user
              body: 
                (BraceGroup
                  children: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(${ VSub_Name EBUILD_PHASE)}
                              right: {(prepare)}
                            )
                        )
                        (C {(die)} 
                          {
                            (DQ ('eapply_user() called during invalid phase: ') 
                              (${ VSub_Name EBUILD_PHASE)
                            )
                          }
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:tagfile)
                          op: Equal
                          rhs: {(${ VSub_Name T) (/.portage_user_patches_applied)}
                          spids: [9131]
                        )
                      ]
                      spids: [9129]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_f child:{(${ VSub_Name tagfile)})
                        )
                        (ControlFlow token:<ControlFlow_Return return>)
                      ]
                    )
                    (SimpleCommand
                      redirects: [
                        (Redir
                          op_id: Redir_DGreat
                          fd: 16777215
                          arg_word: {(DQ (${ VSub_Name tagfile))}
                          spids: [9153]
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:basedir)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name PORTAGE_CONFIGROOT>
                                suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /)})
                                spids: [9166 9170]
                              ) (/etc/portage/patches)
                            }
                          spids: [9165]
                        )
                      ]
                      spids: [9163]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:applied)
                          op: Equal
                          spids: [9177]
                        )
                        (assign_pair
                          lhs: (LhsName name:d)
                          op: Equal
                          spids: [9179]
                        )
                        (assign_pair
                          lhs: (LhsName name:f)
                          op: Equal
                          spids: [9181]
                        )
                      ]
                      spids: [9175]
                    )
                    (Assignment
                      keyword: Assign_Local
                      flags: [-A]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_eapply_user_patches)
                          op: Equal
                          spids: [9188]
                        )
                      ]
                      spids: [9184]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:prev_shopt)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(shopt)} {(-p)} {(nullglob)})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [9194 9200]
                              )
                            }
                          spids: [9193]
                        )
                      ]
                      spids: [9191]
                    )
                    (C {(shopt)} {(-s)} {(nullglob)})
                    (ForEach
                      iter_name: d
                      iter_words: [
                        (BracedWordTree
                          parts: [
                            (DQ (${ VSub_Name basedir))
                            (/)
                            (${ VSub_Name CATEGORY)
                            (/)
                            (BracedAltPart
                              words: [
                                {(${ VSub_Name P) (-) (${ VSub_Name PR)}
                                {(${ VSub_Name P)}
                                {(${ VSub_Name PN)}
                              ]
                            )
                            (BracedAltPart
                              words: [
                                {(Lit_Other ':') 
                                  (BracedVarSub
                                    token: <VSub_Name SLOT>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_Percent
                                        arg_word: {(Lit_Slash /) ('*')}
                                      )
                                    spids: [9298 9303]
                                  )
                                }
                                {}
                              ]
                            )
                          ]
                        )
                      ]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (ForEach
                              iter_name: f
                              iter_words: [{(DQ (${ VSub_Name d)) (/) (Lit_Other '*')}]
                              do_arg_iter: F
                              body: 
                                (DoGroup
                                  children: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DBracket
                                                  expr: 
                                                    (LogicalAnd
                                                      left: 
                                                        (LogicalOr
                                                          left: 
                                                            (BoolBinary
                                                              op_id: BoolBinary_GlobDEqual
                                                              left: {(${ VSub_Name f)}
                                                              right: {(Lit_Other '*') (.diff)}
                                                            )
                                                          right: 
                                                            (BoolBinary
                                                              op_id: BoolBinary_GlobDEqual
                                                              left: {(${ VSub_Name f)}
                                                              right: {(Lit_Other '*') (.patch)}
                                                            )
                                                        )
                                                      right: 
                                                        (BoolUnary
                                                          op_id: BoolUnary_z
                                                          child: 
                                                            {
                                                              (BracedVarSub
                                                                token: 
                                                                  <VSub_Name _eapply_user_patches>
                                                                bracket_op: 
                                                                  (ArrayIndex
                                                                    expr: 
                                                                      (ArithWord
                                                                        w: 
                                                                          {
                                                                            (BracedVarSub
                                                                              token: <VSub_Name f>
                                                                              suffix_op: 
                                                                                (StringUnary
                                                                                  op_id: VOp1_DPound
                                                                                  arg_word: 
                                                                                    {('*') 
                                                                                      (Lit_Slash /)
                                                                                    }
                                                                                )
                                                                              spids: [9365 9370]
                                                                            )
                                                                          }
                                                                      )
                                                                  )
                                                                spids: [9362 9372]
                                                              )
                                                            }
                                                        )
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C 
                                              {(_eapply_user_patches) (Lit_Other '[') 
                                                (BracedVarSub
                                                  token: <VSub_Name f>
                                                  suffix_op: 
                                                    (StringUnary
                                                      op_id: VOp1_DPound
                                                      arg_word: {('*') (Lit_Slash /)}
                                                    )
                                                  spids: [9382 9387]
                                                ) (Lit_Other ']') (Lit_Other '=') (${ VSub_Name f)
                                              }
                                            )
                                          ]
                                          spids: [16777215 9377]
                                        )
                                      ]
                                      spids: [16777215 9395]
                                    )
                                  ]
                                  spids: [9326 9398]
                                )
                              spids: [9316 9324]
                            )
                          ]
                          spids: [9308 9401]
                        )
                      spids: [9268 9306]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_gt
                                      left: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name _eapply_user_patches>
                                            prefix_op: VSub_Pound
                                            bracket_op: (WholeArray op_id:Lit_At)
                                            spids: [9409 9415]
                                          )
                                        }
                                      right: {(0)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (While
                              cond: [
                                (Sentence
                                  child: (C {(read)} {(-r)} {(-d)} {(SQ )} {(f)})
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              body: 
                                (DoGroup
                                  children: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:f)
                                          op: Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name _eapply_user_patches>
                                                bracket_op: 
                                                  (ArrayIndex
                                                    expr: (ArithWord w:{(${ VSub_Name f)})
                                                  )
                                                spids: [9445 9452]
                                              )
                                            }
                                          spids: [9444]
                                        )
                                      ]
                                      spids: [9444]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DBracket
                                                  expr: 
                                                    (BoolUnary
                                                      op_id: BoolUnary_s
                                                      child: {(${ VSub_Name f)}
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(eapply)} {(DQ (${ VSub_Name f))})
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:applied)
                                                  op: Equal
                                                  rhs: {(1)}
                                                  spids: [9480]
                                                )
                                              ]
                                              spids: [9480]
                                            )
                                          ]
                                          spids: [16777215 9468]
                                        )
                                      ]
                                      spids: [16777215 9484]
                                    )
                                  ]
                                  spids: [9441 9487]
                                )
                              redirects: [
                                (Redir
                                  op_id: Redir_Less
                                  fd: 16777215
                                  arg_word: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(printf)} {(--)} {(SQ <'%s\\0'>)} 
                                                    {
                                                      (DQ 
                                                        (BracedVarSub
                                                          token: <VSub_Name _eapply_user_patches>
                                                          prefix_op: VSub_Bang
                                                          bracket_op: (WholeArray op_id:Lit_At)
                                                          spids: [9501 9507]
                                                        )
                                                      )
                                                    }
                                                  )
                                                  (SimpleCommand
                                                    words: [{(sort)} {(-z)}]
                                                    more_env: [
                                                      (env_pair
                                                        name: LC_ALL
                                                        val: {(C)}
                                                        spids: [9513]
                                                      )
                                                    ]
                                                  )
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_ProcSubIn '<('>
                                        spids: [9491 9519]
                                      )
                                    }
                                  spids: [9489]
                                )
                              ]
                            )
                          ]
                          spids: [16777215 9424]
                        )
                      ]
                      spids: [16777215 9522]
                    )
                    (C {(${ VSub_Name prev_shopt)})
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name applied)})
                        )
                        (C {(ewarn)} {(DQ ('User patches applied.'))})
                      ]
                    )
                  ]
                  spids: [9096]
                )
              spids: [9092 9095]
            )
          ]
          spids: [16777215 9089]
        )
      ]
      spids: [16777215 9553]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_in_iuse)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: in_iuse
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:use)
                          op: Equal
                          rhs: {(${ VSub_Number 1)}
                          spids: [9573]
                        )
                      ]
                      spids: [9571]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: (BoolUnary op_id:BoolUnary_z child:{(DQ (${ VSub_Name use))})
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (SimpleCommand
                              words: [{(echo)} {(DQ ('!!! in_iuse() called without a parameter.'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_GreatAnd
                                  fd: 16777215
                                  arg_word: {(2)}
                                  spids: [9604]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(echo)} {(DQ ('!!! in_iuse <USEFLAG>'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_GreatAnd
                                  fd: 16777215
                                  arg_word: {(2)}
                                  spids: [9614]
                                )
                              ]
                            )
                            (C {(die)} {(DQ ('in_iuse() called without a parameter'))})
                          ]
                          spids: [16777215 9595]
                        )
                      ]
                      spids: [16777215 9625]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:liuse)
                          op: Equal
                          rhs: {(ArrayLiteralPart words:[{(${ VSub_Name IUSE_EFFECTIVE)}])}
                          spids: [9631]
                        )
                      ]
                      spids: [9629]
                    )
                    (C {(has)} {(DQ (${ VSub_Name use))} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name liuse>
                            bracket_op: (WholeArray op_id:Lit_At)
                            suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('[+-]')})
                            spids: [9651 9658]
                          )
                        )
                      }
                    )
                  ]
                  spids: [9568]
                )
              spids: [9564 9567]
            )
          ]
          spids: [16777215 9561]
        )
      ]
      spids: [16777215 9664]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_master_repositories)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: master_repositories
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:output)
                          op: Equal
                          spids: [9684]
                        )
                        (assign_pair
                          lhs: (LhsName name:repository)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [9686]
                        )
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          spids: [9689]
                        )
                      ]
                      spids: [9682]
                    )
                    (C {(shift)})
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolBinary op_id:BoolBinary_gt left:{($ VSub_Pound '$#')} right:{(0)})
                        )
                        (C {(die)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name FUNCNAME>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                spids: [9710 9715]
                              ) (': unused argument(s): ') ($ VSub_Star '$*')
                            )
                          }
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/ebuild-ipc))} 
                              {(master_repositories)} {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))}
                            )
                          ]
                          spids: [16777215 9735]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:output)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C 
                                            {
                                              (DQ (${ VSub_Name PORTAGE_BIN_PATH) 
                                                (/ebuild-helpers/portageq)
                                              )
                                            } {(master_repositories)} {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [9764 9785]
                                  )
                                }
                              spids: [9763]
                            )
                          ]
                          spids: [9763]
                        )
                      ]
                      spids: [9760 9788]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [9791]
                        )
                      ]
                      spids: [9791]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name output)})
                        )
                        (C {(echo)} {(DQ (${ VSub_Name output))})
                      ]
                    )
                    (Case
                      to_match: {(DQ (${ VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{(0)} {(1)}]
                          action: [
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(${ VSub_Name retval)}
                            )
                          ]
                          spids: [9827 9830 9840 16777215]
                        )
                        (case_arm
                          pat_list: [{(2)}]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [9850 9855]
                                  ) (': invalid repository: ') (${ VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [9843 9844 9863 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolUnary
                                              op_id: BoolUnary_n
                                              child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(die)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name FUNCNAME>
                                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                            spids: [9889 9894]
                                          ) (': unexpected ebuild-ipc exit code: ') (${ VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 9883]
                                )
                              ]
                              else_action: [
                                (C {(die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [9908 9913]
                                      ) (': unexpected portageq exit code: ') (${ VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                              spids: [9902 9921]
                            )
                          ]
                          spids: [9866 9867 9924 16777215]
                        )
                      ]
                      spids: [9816 9824 9927]
                    )
                  ]
                  spids: [9679]
                )
              spids: [9675 9678]
            )
          ]
          spids: [16777215 9672]
        )
      ]
      spids: [16777215 9932]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_repository_path)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: repository_path
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:output)
                          op: Equal
                          spids: [9952]
                        )
                        (assign_pair
                          lhs: (LhsName name:repository)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [9954]
                        )
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          spids: [9957]
                        )
                      ]
                      spids: [9950]
                    )
                    (C {(shift)})
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolBinary op_id:BoolBinary_gt left:{($ VSub_Pound '$#')} right:{(0)})
                        )
                        (C {(die)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name FUNCNAME>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                spids: [9978 9983]
                              ) (': unused argument(s): ') ($ VSub_Star '$*')
                            )
                          }
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/ebuild-ipc))} {(repository_path)} 
                              {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))}
                            )
                          ]
                          spids: [16777215 10003]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:output)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C 
                                            {
                                              (DQ (${ VSub_Name PORTAGE_BIN_PATH) 
                                                (/ebuild-helpers/portageq)
                                              )
                                            } {(get_repo_path)} {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [10032 10053]
                                  )
                                }
                              spids: [10031]
                            )
                          ]
                          spids: [10031]
                        )
                      ]
                      spids: [10028 10056]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [10059]
                        )
                      ]
                      spids: [10059]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name output)})
                        )
                        (C {(echo)} {(DQ (${ VSub_Name output))})
                      ]
                    )
                    (Case
                      to_match: {(DQ (${ VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{(0)} {(1)}]
                          action: [
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(${ VSub_Name retval)}
                            )
                          ]
                          spids: [10095 10098 10108 16777215]
                        )
                        (case_arm
                          pat_list: [{(2)}]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [10118 10123]
                                  ) (': invalid repository: ') (${ VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [10111 10112 10131 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolUnary
                                              op_id: BoolUnary_n
                                              child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(die)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name FUNCNAME>
                                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                            spids: [10157 10162]
                                          ) (': unexpected ebuild-ipc exit code: ') (${ VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 10151]
                                )
                              ]
                              else_action: [
                                (C {(die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [10176 10181]
                                      ) (': unexpected portageq exit code: ') (${ VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                              spids: [10170 10189]
                            )
                          ]
                          spids: [10134 10135 10192 16777215]
                        )
                      ]
                      spids: [10084 10092 10195]
                    )
                  ]
                  spids: [9947]
                )
              spids: [9943 9946]
            )
          ]
          spids: [16777215 9940]
        )
      ]
      spids: [16777215 10200]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_available_eclasses)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: available_eclasses
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:output)
                          op: Equal
                          spids: [10220]
                        )
                        (assign_pair
                          lhs: (LhsName name:repository)
                          op: Equal
                          rhs: {(${ VSub_Name PORTAGE_REPO_NAME)}
                          spids: [10222]
                        )
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          spids: [10227]
                        )
                      ]
                      spids: [10218]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolBinary op_id:BoolBinary_gt left:{($ VSub_Pound '$#')} right:{(0)})
                        )
                        (C {(die)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name FUNCNAME>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                spids: [10245 10250]
                              ) (': unused argument(s): ') ($ VSub_Star '$*')
                            )
                          }
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/ebuild-ipc))} 
                              {(available_eclasses)} {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))}
                            )
                          ]
                          spids: [16777215 10270]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:output)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C 
                                            {
                                              (DQ (${ VSub_Name PORTAGE_BIN_PATH) 
                                                (/ebuild-helpers/portageq)
                                              )
                                            } {(available_eclasses)} {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [10299 10320]
                                  )
                                }
                              spids: [10298]
                            )
                          ]
                          spids: [10298]
                        )
                      ]
                      spids: [10295 10323]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [10326]
                        )
                      ]
                      spids: [10326]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name output)})
                        )
                        (C {(echo)} {(DQ (${ VSub_Name output))})
                      ]
                    )
                    (Case
                      to_match: {(DQ (${ VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{(0)} {(1)}]
                          action: [
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(${ VSub_Name retval)}
                            )
                          ]
                          spids: [10362 10365 10375 16777215]
                        )
                        (case_arm
                          pat_list: [{(2)}]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [10385 10390]
                                  ) (': invalid repository: ') (${ VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [10378 10379 10398 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolUnary
                                              op_id: BoolUnary_n
                                              child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(die)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name FUNCNAME>
                                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                            spids: [10424 10429]
                                          ) (': unexpected ebuild-ipc exit code: ') (${ VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 10418]
                                )
                              ]
                              else_action: [
                                (C {(die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [10443 10448]
                                      ) (': unexpected portageq exit code: ') (${ VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                              spids: [10437 10456]
                            )
                          ]
                          spids: [10401 10402 10459 16777215]
                        )
                      ]
                      spids: [10351 10359 10462]
                    )
                  ]
                  spids: [10215]
                )
              spids: [10211 10214]
            )
          ]
          spids: [16777215 10208]
        )
      ]
      spids: [16777215 10467]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_eclass_path)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: eclass_path
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:eclass)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [10487]
                        )
                        (assign_pair
                          lhs: (LhsName name:output)
                          op: Equal
                          spids: [10490]
                        )
                        (assign_pair
                          lhs: (LhsName name:repository)
                          op: Equal
                          rhs: {(${ VSub_Name PORTAGE_REPO_NAME)}
                          spids: [10492]
                        )
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          spids: [10497]
                        )
                      ]
                      spids: [10485]
                    )
                    (C {(shift)})
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolBinary op_id:BoolBinary_gt left:{($ VSub_Pound '$#')} right:{(0)})
                        )
                        (C {(die)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name FUNCNAME>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                spids: [10518 10523]
                              ) (': unused argument(s): ') ($ VSub_Star '$*')
                            )
                          }
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/ebuild-ipc))} {(eclass_path)} 
                              {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))} {(DQ (${ VSub_Name eclass))}
                            )
                          ]
                          spids: [16777215 10543]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:output)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C 
                                            {
                                              (DQ (${ VSub_Name PORTAGE_BIN_PATH) 
                                                (/ebuild-helpers/portageq)
                                              )
                                            } {(eclass_path)} {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))} {(DQ (${ VSub_Name eclass))}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [10578 10605]
                                  )
                                }
                              spids: [10577]
                            )
                          ]
                          spids: [10577]
                        )
                      ]
                      spids: [10574 10608]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [10611]
                        )
                      ]
                      spids: [10611]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name output)})
                        )
                        (C {(echo)} {(DQ (${ VSub_Name output))})
                      ]
                    )
                    (Case
                      to_match: {(DQ (${ VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{(0)} {(1)}]
                          action: [
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(${ VSub_Name retval)}
                            )
                          ]
                          spids: [10647 10650 10660 16777215]
                        )
                        (case_arm
                          pat_list: [{(2)}]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [10670 10675]
                                  ) (': invalid repository: ') (${ VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [10663 10664 10683 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolUnary
                                              op_id: BoolUnary_n
                                              child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(die)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name FUNCNAME>
                                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                            spids: [10709 10714]
                                          ) (': unexpected ebuild-ipc exit code: ') (${ VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 10703]
                                )
                              ]
                              else_action: [
                                (C {(die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [10728 10733]
                                      ) (': unexpected portageq exit code: ') (${ VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                              spids: [10722 10741]
                            )
                          ]
                          spids: [10686 10687 10744 16777215]
                        )
                      ]
                      spids: [10636 10644 10747]
                    )
                  ]
                  spids: [10482]
                )
              spids: [10478 10481]
            )
          ]
          spids: [16777215 10475]
        )
      ]
      spids: [16777215 10752]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_license_path)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: license_path
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:license)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [10772]
                        )
                        (assign_pair
                          lhs: (LhsName name:output)
                          op: Equal
                          spids: [10775]
                        )
                        (assign_pair
                          lhs: (LhsName name:repository)
                          op: Equal
                          rhs: {(${ VSub_Name PORTAGE_REPO_NAME)}
                          spids: [10777]
                        )
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          spids: [10782]
                        )
                      ]
                      spids: [10770]
                    )
                    (C {(shift)})
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolBinary op_id:BoolBinary_gt left:{($ VSub_Pound '$#')} right:{(0)})
                        )
                        (C {(die)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name FUNCNAME>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                spids: [10803 10808]
                              ) (': unused argument(s): ') ($ VSub_Star '$*')
                            )
                          }
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/ebuild-ipc))} {(license_path)} 
                              {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))} {(DQ (${ VSub_Name license))}
                            )
                          ]
                          spids: [16777215 10828]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:output)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C 
                                            {
                                              (DQ (${ VSub_Name PORTAGE_BIN_PATH) 
                                                (/ebuild-helpers/portageq)
                                              )
                                            } {(license_path)} {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))} 
                                            {(DQ (${ VSub_Name license))}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [10863 10890]
                                  )
                                }
                              spids: [10862]
                            )
                          ]
                          spids: [10862]
                        )
                      ]
                      spids: [10859 10893]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [10896]
                        )
                      ]
                      spids: [10896]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name output)})
                        )
                        (C {(echo)} {(DQ (${ VSub_Name output))})
                      ]
                    )
                    (Case
                      to_match: {(DQ (${ VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{(0)} {(1)}]
                          action: [
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(${ VSub_Name retval)}
                            )
                          ]
                          spids: [10932 10935 10945 16777215]
                        )
                        (case_arm
                          pat_list: [{(2)}]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [10955 10960]
                                  ) (': invalid repository: ') (${ VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [10948 10949 10968 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolUnary
                                              op_id: BoolUnary_n
                                              child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(die)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name FUNCNAME>
                                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                            spids: [10994 10999]
                                          ) (': unexpected ebuild-ipc exit code: ') (${ VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 10988]
                                )
                              ]
                              else_action: [
                                (C {(die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [11013 11018]
                                      ) (': unexpected portageq exit code: ') (${ VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                              spids: [11007 11026]
                            )
                          ]
                          spids: [10971 10972 11029 16777215]
                        )
                      ]
                      spids: [10921 10929 11032]
                    )
                  ]
                  spids: [10767]
                )
              spids: [10763 10766]
            )
          ]
          spids: [16777215 10760]
        )
      ]
      spids: [16777215 11037]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(___eapi_has_package_manager_build_user)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (FuncDef
              name: package_manager_build_user
              body: 
                (BraceGroup
                  children: [(C {(echo)} {(DQ (${ VSub_Name PORTAGE_BUILD_USER))})]
                  spids: [11052]
                )
              spids: [11048 11051]
            )
          ]
          spids: [16777215 11045]
        )
      ]
      spids: [16777215 11066]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(___eapi_has_package_manager_build_group)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (FuncDef
              name: package_manager_build_group
              body: 
                (BraceGroup
                  children: [(C {(echo)} {(DQ (${ VSub_Name PORTAGE_BUILD_GROUP))})]
                  spids: [11081]
                )
              spids: [11077 11080]
            )
          ]
          spids: [16777215 11074]
        )
      ]
      spids: [16777215 11095]
    )
  ]
)