// Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/*library: 
 a_pre_fragments=[
  p1: {units: [2{b4}], usedBy: [], needs: []},
  p2: {units: [1{b1, b2, b3, b4}], usedBy: [], needs: []}],
 b_finalized_fragments=[
  f1: [2{b4}],
  f2: [1{b1, b2, b3, b4}]],
 c_steps=[
  b1=(f2),
  b2=(f2),
  b3=(f2),
  b4=(f2, f1)]
*/

// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
import 'lib1.dart';
import 'lib2.dart';
import 'lib3.dart';
import 'lib4.dart';

/*member: main:member_unit=main{}*/
main() {
  entryLib1();
  entryLib2();
  entryLib3();
  entryLib4();
}
