(CommandList
  children: [
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('Usage: ') ($ VSub_Number '$0') (' <libdir> <private_libdir>'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 24]
        )
      ]
      spids: [16777215 40]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:libdir)
          op: Equal
          rhs: {(DQ ($ VSub_Number '$1'))}
          spids: [43]
        )
      ]
      spids: [43]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:private_libdir)
          op: Equal
          rhs: {(DQ ($ VSub_Number '$2'))}
          spids: [48]
        )
      ]
      spids: [48]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ ($ VSub_Name '$libdir') (/libjulia.so))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('ERROR: Could not open ') ($ VSub_Name '$libdir') (/libjulia.so))}]
              redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(2)})
          ]
          spids: [16777215 70]
        )
      ]
      spids: [16777215 89]
    )
    (FuncDef
      name: find_shlib
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Pipeline
                      children: [
                        (C {(ldd)} {(DQ ($ VSub_Number '$1'))})
                        (C {(grep)} {($ VSub_Number '$2')})
                        (C {(cut)} {(-d) (SQ <' '>)} {(-f3)})
                        (C {(xargs)})
                      ]
                      negated: F
                    )
                  ]
                  spids: [16777215 113]
                )
              ]
              spids: [16777215 144]
            )
          ]
          spids: [97]
        )
      spids: [92 96]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:LIBSTD)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(find_shlib)} {(DQ ($ VSub_Name '$libdir') (/libjulia.so))} 
                        {(DQ ('libstdc++.so'))}
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [153 164]
              )
            }
          spids: [152]
        )
      ]
      spids: [152]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:LIBSTD_NAME)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(basename)} {($ VSub_Name '$LIBSTD')})])
                left_token: <Left_CommandSub '$('>
                spids: [167 171]
              )
            }
          spids: [166]
        )
      ]
      spids: [166]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:LIBSTD_DIR)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(dirname)} {($ VSub_Name '$LIBSTD')})])
                left_token: <Left_CommandSub '$('>
                spids: [174 178]
              )
            }
          spids: [173]
        )
      ]
      spids: [173]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (AndOr
                  ops: [Op_DAmp]
                  children: [
                    (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} 
                      {(DQ ($ VSub_Name '$private_libdir') (/) ($ VSub_Name '$LIBSTD_NAME'))} {(Lit_Other ']')}
                    )
                    (C {(Lit_Other '[')} {(-f)} 
                      {(DQ ($ VSub_Name '$LIBSTD_DIR') (/) ($ VSub_Name '$LIBSTD_NAME'))} {(Lit_Other ']')}
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(cp)} {(-v)} {(DQ ($ VSub_Name '$LIBSTD_DIR') (/) ($ VSub_Name '$LIBSTD_NAME'))} 
              {(DQ ($ VSub_Name '$private_libdir'))}
            )
            (C {(chmod)} {(755)} {(DQ ($ VSub_Name '$private_libdir') (/) ($ VSub_Name '$LIBSTD_NAME'))})
          ]
          spids: [16777215 212]
        )
      ]
      spids: [16777215 240]
    )
  ]
)