Create new linux_sysroot recipe

The recipe checks out and builds fuchsia, then invokes the debroot tool
to generate a linux sysroot that it uploads to CIPD.

Test: https://chromium-swarm.appspot.com/task?id=499a5dadc8f49310
Bug: 41620
Change-Id: I1f8d970740058f4b5b7a61bbe33a721382d055b2
diff --git a/recipe_modules/build/api.py b/recipe_modules/build/api.py
index 64589cb..53bcd55 100644
--- a/recipe_modules/build/api.py
+++ b/recipe_modules/build/api.py
@@ -702,6 +702,7 @@
     """Builds Fuchsia from a Jiri checkout.
 
     Args:
+      build_dir (Path): The directory to output build results into.
       checkout (CheckoutResult): The Fuchsia checkout result.
       target (str): The build target, see TARGETS for allowed targets.
       build_type (str): One of the build types in BUILD_TYPES
diff --git a/recipes/linux_sysroot.expected/basic.json b/recipes/linux_sysroot.expected/basic.json
new file mode 100644
index 0000000..93b31ab
--- /dev/null
+++ b/recipes/linux_sysroot.expected/basic.json
@@ -0,0 +1,1874 @@
+[
+  {
+    "cmd": [],
+    "name": "checkout"
+  },
+  {
+    "cmd": [],
+    "name": "checkout.checkout",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "checkout.checkout.ensure jiri",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/jiri",
+      "-ensure-file",
+      "fuchsia/tools/jiri/${platform} git_revision:60436c301224231cb99be41ce937dfc223bee272",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "checkout.checkout.ensure jiri.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:604\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/tools/jiri/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "init",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-analytics-opt=false",
+      "-rewrite-sso-to-https=true",
+      "-cache",
+      "[CACHE]/git",
+      "-shared",
+      "[START_DIR]/linux_sysroot"
+    ],
+    "infra_step": true,
+    "name": "checkout.checkout.jiri init",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "import",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-name",
+      "integration",
+      "-revision",
+      "HEAD",
+      "minimal",
+      "https://fuchsia.googlesource.com"
+    ],
+    "cwd": "[START_DIR]/linux_sysroot",
+    "infra_step": true,
+    "name": "checkout.checkout.jiri import",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "override",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-revision",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
+      "fuchsia",
+      "https://fuchsia.googlesource.com/fuchsia"
+    ],
+    "cwd": "[START_DIR]/linux_sysroot",
+    "infra_step": true,
+    "name": "checkout.checkout.jiri override",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "update",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-autoupdate=false",
+      "-attempts=3",
+      "-run-hooks=false"
+    ],
+    "cwd": "[START_DIR]/linux_sysroot",
+    "infra_step": true,
+    "name": "checkout.checkout.jiri update",
+    "timeout": 1800,
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "run-hooks",
+      "-vv",
+      "-time",
+      "-j=50",
+      "-attempts=3"
+    ],
+    "cwd": "[START_DIR]/linux_sysroot",
+    "infra_step": true,
+    "name": "checkout.checkout.jiri run-hooks",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "source-manifest",
+      "-vv",
+      "-time",
+      "-j=50",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/linux_sysroot",
+    "infra_step": true,
+    "name": "checkout.checkout.jiri source-manifest",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@{@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@  \"directories\": {@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@    \"manifest\": {@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@      \"git_checkout\": {@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@        \"repo_url\": \"https://fuchsia.googlesource.com/manifest\", @@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@        \"revision\": \"4c2b0da3c06341db5cebe4d02c78c93c3b2bd78b\"@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@      }@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@    }@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@  }@@@",
+      "@@@STEP_LOG_LINE@json.output[source manifest]@}@@@",
+      "@@@STEP_LOG_END@json.output[source manifest]@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/jiri/jiri",
+      "snapshot",
+      "-vv",
+      "-time",
+      "-j=50",
+      "[CLEANUP]/jiri.snapshot"
+    ],
+    "cwd": "[START_DIR]/linux_sysroot",
+    "infra_step": true,
+    "name": "checkout.checkout.jiri snapshot",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/jiri.snapshot",
+      "/path/to/tmp/"
+    ],
+    "cwd": "[START_DIR]/linux_sysroot",
+    "infra_step": true,
+    "name": "checkout.checkout.read snapshot",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_END@jiri.snapshot@@@",
+      "@@@STEP_LOG_LINE@snapshot_contents@@@@",
+      "@@@STEP_LOG_END@snapshot_contents@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build"
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia.ensure goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/goma/client",
+      "-ensure-file",
+      "infra_internal/goma/client/${platform} release",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "build.build fuchsia.ensure goma.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-release---------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra_internal/goma/client/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/linux_sysroot/prebuilt/third_party/gn/linux-x64/gn",
+      "gen",
+      "[START_DIR]/linux_sysroot/out/default",
+      "--check",
+      "--args=import(\"//products/core.gni\")  base_package_labels+=[\"//tools/debroot:debroot\"] build_info_product=\"core\" goma_dir=\"[CACHE]/goma/client\" is_debug=false target_cpu=\"x64\" use_goma=true"
+    ],
+    "cwd": "[START_DIR]/linux_sysroot",
+    "name": "build.build fuchsia.gn gen",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "[START_DIR]/linux_sysroot/out/default/zircon.json",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/linux_sysroot",
+    "name": "build.build fuchsia.read zircon ninja instructions",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"dir\": \"../default.zircon\", @@@",
+      "@@@STEP_LOG_LINE@json.output@  \"targets\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"legacy-host_tests\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"manifest-$cpu\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  ]@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "[START_DIR]/linux_sysroot/out/default/images.json",
+      "/path/to/tmp/json"
+    ],
+    "name": "build.build fuchsia.read image manifest",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--boot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--zircona\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zircon-a\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fuchsia.zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"storage-full\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fvm.blk\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"blk\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--fvm\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"storage-sparse\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fvm.sparse.blk\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"blk\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--efi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"efi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fuchsia.esp.blk\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"blk\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_netboot\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--boot\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"netboot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"netboot.zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"archive\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"build-archive.tgz\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"tgz\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"archive\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"build-archive.zip\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zip\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"qemu-kernel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"multiboot.bin\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"kernel\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbol-archive\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"symbol-archive.tgz\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"tgz\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"--zircon-r\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    ], @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zircon-r\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"zircon-r.zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@]@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "[START_DIR]/linux_sysroot/out/default/tool_paths.json",
+      "/path/to/tmp/json"
+    ],
+    "name": "build.build fuchsia.read tool_paths manifest",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/linux_x64/bazel\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/linux_x64/cargo\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/linux_x64/clang-doc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/linux_x64/clang-format-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/linux_x64/clang-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/linux_x64/clang-tidy-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/linux_x64/clang-tidy\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/linux_x64/dart\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/linux_x64/dartfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/linux_x64/gn\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/linux_x64/go\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/linux_x64/gofmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/linux_x64/llvm-cov\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/linux_x64/llvm-profdata\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/linux_x64/ninja\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/linux_x64/rustc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/linux_x64/rustdoc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/linux_x64/rustfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/linux_x64/yapf\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/bootserver\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/fidl-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/fidl-lint\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/fvm\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/minfs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/artifactory\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/bootserver_new\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/botanist\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/covargs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/debroot\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/ninjatrace\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/seriallistener\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/size_checker\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/symbolize\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/testrunner\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/testsharder\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/upload_debug_symbols\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"upload_debug_symbols\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/upload_debug_symbols\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/linux_arm64/bazel\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/linux_arm64/cargo\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/linux_arm64/clang-doc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/linux_arm64/clang-format-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/linux_arm64/clang-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/linux_arm64/clang-tidy-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/linux_arm64/clang-tidy\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/linux_arm64/dart\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/linux_arm64/dartfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/linux_arm64/gn\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/linux_arm64/go\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/linux_arm64/gofmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/linux_arm64/llvm-cov\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/linux_arm64/llvm-profdata\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/linux_arm64/llvm-symbolizer\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/linux_arm64/ninja\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/linux_arm64/rustc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/linux_arm64/rustdoc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/linux_arm64/rustfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/linux_arm64/yapf\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/bootserver\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/fidl-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/fidl-lint\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/fvm\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/minfs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/artifactory\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/bootserver_new\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/botanist\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/covargs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/debroot\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/ninjatrace\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/seriallistener\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/size_checker\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/symbolize\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/testrunner\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/testsharder\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/upload_debug_symbols\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"upload_debug_symbols\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/upload_debug_symbols\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/mac_x64/bazel\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/mac_x64/cargo\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/mac_x64/clang-doc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/mac_x64/clang-format-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/mac_x64/clang-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/mac_x64/clang-tidy-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/mac_x64/clang-tidy\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/mac_x64/dart\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/mac_x64/dartfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/mac_x64/gn\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/mac_x64/go\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/mac_x64/gofmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/mac_x64/llvm-cov\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/mac_x64/llvm-profdata\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/mac_x64/llvm-symbolizer\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/mac_x64/ninja\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/mac_x64/rustc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/mac_x64/rustdoc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/mac_x64/rustfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/mac_x64/yapf\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/bootserver\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/fidl-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/fidl-lint\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/fvm\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/minfs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/artifactory\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/bootserver_new\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/botanist\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/covargs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/debroot\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/ninjatrace\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/seriallistener\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/size_checker\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/symbolize\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/testrunner\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/testsharder\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/upload_debug_symbols\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"upload_debug_symbols\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/upload_debug_symbols\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/mac_arm64/bazel\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/mac_arm64/cargo\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/mac_arm64/clang-doc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/mac_arm64/clang-format-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/mac_arm64/clang-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/mac_arm64/clang-tidy-diff\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/mac_arm64/clang-tidy\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/mac_arm64/dart\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/mac_arm64/dartfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/mac_arm64/gn\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/mac_arm64/go\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/mac_arm64/gofmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/mac_arm64/llvm-cov\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/mac_arm64/llvm-profdata\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/mac_arm64/llvm-symbolizer\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/mac_arm64/ninja\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/mac_arm64/rustc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/mac_arm64/rustdoc\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/mac_arm64/rustfmt\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/mac_arm64/yapf\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/bootserver\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/fidl-format\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/fidl-lint\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/fvm\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/minfs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/zbi\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/artifactory\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/bootserver_new\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/botanist\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/covargs\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/debroot\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/ninjatrace\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/seriallistener\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/size_checker\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/symbolize\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/testrunner\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/testsharder\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/upload_debug_symbols\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"name\": \"upload_debug_symbols\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/upload_debug_symbols\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@]@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "[START_DIR]/linux_sysroot/out/default/tests.json",
+      "/path/to/tmp/json"
+    ],
+    "name": "build.build fuchsia.read test spec manifest",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@[@@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"test\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"label\": \"//public/lib/foo:foo_tests(//some/toolchain)\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"name\": \"foo_tests\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"os\": \"linux\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"path\": \"path/on/disk/to/test\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  }, @@@",
+      "@@@STEP_LOG_LINE@json.output@  {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"test\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"label\": \"//lib/bar:bar_unittests(//some/toolchain)\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"name\": \"bar_unittests\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"os\": \"fuchsia\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"path\": \"path/on/fuchsia/to/test\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@]@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia.ninja",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia.ninja.pre_goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
+      "<LUCI_CONTEXT>",
+      "/path/to/tmp/json"
+    ],
+    "name": "build.build fuchsia.ninja.pre_goma.read context",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "{\"local_auth\": {\"accounts\": [{\"email\": \"some@example.com\", \"id\": \"test\"}], \"default_account_id\": \"system\"}}",
+      "[CLEANUP]/luci_context._tmp_1"
+    ],
+    "infra_step": true,
+    "name": "build.build fuchsia.ninja.pre_goma.write context",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@luci_context._tmp_1@{\"local_auth\": {\"accounts\": [{\"email\": \"some@example.com\", \"id\": \"test\"}], \"default_account_id\": \"system\"}}@@@",
+      "@@@STEP_LOG_END@luci_context._tmp_1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "[CACHE]/goma/client/goma_ctl.py",
+      "restart"
+    ],
+    "env": {
+      "GOMA_CACHE_DIR": "[CACHE]/goma",
+      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+      "GOMA_PING_TIMEOUT_SEC": "100",
+      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_1"
+    },
+    "infra_step": true,
+    "name": "build.build fuchsia.ninja.pre_goma.start_goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[fuchsia::ninja]/resources/ninja_wrapper.py",
+      "--ninja_info_output",
+      "/path/to/tmp/json",
+      "--failure_output",
+      "/path/to/tmp/",
+      "--",
+      "[START_DIR]/linux_sysroot/prebuilt/third_party/ninja/linux_x64/ninja",
+      "-C",
+      "[START_DIR]/linux_sysroot/out/default.zircon",
+      "-j",
+      "80",
+      "legacy-host_tests",
+      "manifest-$cpu"
+    ],
+    "name": "build.build fuchsia.ninja.zircon",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[fuchsia::ninja]/resources/ninja_wrapper.py",
+      "--ninja_info_output",
+      "/path/to/tmp/json",
+      "--failure_output",
+      "/path/to/tmp/",
+      "--",
+      "[START_DIR]/linux_sysroot/prebuilt/third_party/ninja/linux_x64/ninja",
+      "-C",
+      "[START_DIR]/linux_sysroot/out/default",
+      "-j",
+      "80",
+      "build/images:record_filesystem_sizes",
+      "build/images:system_snapshot",
+      "fuchsia.esp.blk",
+      "fuchsia.zbi",
+      "fvm.blk",
+      "fvm.sparse.blk",
+      "ids.txt",
+      "multiboot.bin",
+      "netboot.zbi",
+      "path/on/disk/to/test",
+      "zircon-r.zbi"
+    ],
+    "name": "build.build fuchsia.ninja.fuchsia",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia.ninja.post_goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "[CACHE]/goma/client/goma_ctl.py",
+      "jsonstatus",
+      "[CACHE]/goma/client/jsonstatus"
+    ],
+    "env": {
+      "GOMA_CACHE_DIR": "[CACHE]/goma",
+      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_1"
+    },
+    "name": "build.build fuchsia.ninja.post_goma.goma_jsonstatus",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"notice\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@    {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"infra_status\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"num_user_error\": 0, @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"ping_status_code\": 200@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  ]@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "[CACHE]/goma/client/goma_ctl.py",
+      "stat"
+    ],
+    "env": {
+      "GOMA_CACHE_DIR": "[CACHE]/goma",
+      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_1"
+    },
+    "name": "build.build fuchsia.ninja.post_goma.goma_stats",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "[CACHE]/goma/client/goma_ctl.py",
+      "stop"
+    ],
+    "env": {
+      "GOMA_CACHE_DIR": "[CACHE]/goma",
+      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
+      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
+      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_1"
+    },
+    "name": "build.build fuchsia.ninja.post_goma.stop_goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CACHE]/goma/client/goma_stats.json",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "name": "build.build fuchsia.ninja.post_goma.read goma_stats.json",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
+      "@@@STEP_LOG_END@goma_stats.json@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "{\"build_info\": {\"build_id\": 8945511751514863184, \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"builder\": \"builder\", \"time_stamp_int\": 1337000003000}}",
+      "[CACHE]/goma/client/goma_stats.json"
+    ],
+    "infra_step": true,
+    "name": "build.build fuchsia.ninja.post_goma.write goma_stats.json",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"builder\": \"builder\", \"time_stamp_int\": 1337000003000}}@@@",
+      "@@@STEP_LOG_END@goma_stats.json@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"build_info\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"build_id\": 8945511751514863184, @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"time_stamp\": \"2012-05-14 12:53:21.500000\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"builder\": \"builder\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"time_stamp_int\": 1337000003000@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "build.build fuchsia.ninja.post_goma.ensure bqupload",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/bqupload",
+      "-ensure-file",
+      "infra/tools/bqupload/${platform} git_revision:d85fe78f303c3e969f815121e17c8b08868039ef",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "build.build fuchsia.ninja.post_goma.ensure bqupload.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@5@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:d85\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/bqupload/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/bqupload/bqupload",
+      "fuchsia-infra.artifacts.builds_beta_goma",
+      "[CACHE]/goma/client/goma_stats.json"
+    ],
+    "name": "build.build fuchsia.ninja.post_goma.upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "filesizes",
+      "[START_DIR]/linux_sysroot/out/default/fvm.blk"
+    ],
+    "infra_step": true,
+    "name": "build.build fuchsia.fvm.blk size",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@filesizes@[START_DIR]/linux_sysroot/out/default/fvm.blk: \t111@@@",
+      "@@@STEP_LOG_END@filesizes@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/linux_sysroot/out/default.zircon/host-linux-x64/fvm",
+      "[START_DIR]/linux_sysroot/out/default/fvm.blk",
+      "extend",
+      "--length",
+      "222"
+    ],
+    "name": "build.build fuchsia.fvm.blk extend",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/linux_sysroot/out/default/linux_x64/debroot",
+      "install",
+      "-out",
+      "[CLEANUP]/sysroot_tmp_2",
+      "[START_DIR]/linux_sysroot/tools/debroot/cmd/packages.lock"
+    ],
+    "name": "generate sysroot"
+  },
+  {
+    "cmd": [],
+    "name": "cipd"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "pkg-build",
+      "-pkg-def",
+      "{\"data\": [{\"dir\": \".\", \"exclude\": []}, {\"version_file\": \".versions/sysroot.cipd_version\"}], \"install_mode\": \"copy\", \"package\": \"fuchsia/third_party/sysroot/linux\", \"root\": \"[CLEANUP]/sysroot_tmp_2\"}",
+      "-out",
+      "[CLEANUP]/sysroot.cipd",
+      "-hash-algo",
+      "sha256",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "name": "cipd.build fuchsia/third_party/sysroot/linux",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"instance_id\": \"40-chars-fake-of-the-package-instance_id\", @@@",
+      "@@@STEP_LOG_LINE@json.output@    \"package\": \"fuchsia/third_party/sysroot/linux\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "search",
+      "fuchsia/third_party/sysroot/linux",
+      "-tag",
+      "git_revision:2d72510e447ab60a9728aeea2362d8be2cbd7789",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "name": "cipd.cipd search fuchsia/third_party/sysroot/linux git_revision:2d72510e447ab60a9728aeea2362d8be2cbd7789",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@    {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"instance_id\": \"40-chars-fake-of-the-package-instance_id\", @@@",
+      "@@@STEP_LOG_LINE@json.output@      \"package\": \"fuchsia/third_party/sysroot/linux\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  ]@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "cipd.Package is up-to-date",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipes/linux_sysroot.py b/recipes/linux_sysroot.py
new file mode 100644
index 0000000..f4674d6
--- /dev/null
+++ b/recipes/linux_sysroot.py
@@ -0,0 +1,82 @@
+# Copyright 2020 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Recipe to build the Linux host sysroot and upload it to CIPD."""
+
+from recipe_engine.recipe_api import Property
+
+DEPS = [
+    'fuchsia/build',
+    'fuchsia/build_input_resolver',
+    'fuchsia/checkout',
+    'fuchsia/fuchsia',
+    'fuchsia/upload',
+    'recipe_engine/buildbucket',
+    'recipe_engine/context',
+    'recipe_engine/path',
+    'recipe_engine/properties',
+    'recipe_engine/step',
+]
+
+PROPERTIES = {
+    'manifest': Property(kind=str, help='Jiri manifest to use'),
+    'remote': Property(kind=str, help='Remote manifest repository'),
+}
+
+PACKAGE = 'fuchsia/third_party/sysroot/linux'
+
+
+def RunSteps(api, manifest, remote):
+  api.build_input_resolver.resolve(
+      default_project_url='https://fuchsia.googlesource.com/fuchsia')
+  bb_build = api.buildbucket.build
+
+  with api.step.nest('checkout'), api.context(infra_steps=True):
+    checkout = api.checkout.fuchsia_with_options(
+        path=api.path['start_dir'].join('linux_sysroot'),
+        manifest=manifest,
+        remote=remote,
+        build=bb_build,
+    )
+
+  build_results = api.build.with_options(
+      build_dir=checkout.root_dir.join('out'),
+      checkout=checkout,
+      target='x64',
+      product='products/core.gni',
+      build_type='release',
+      packages=['//tools/debroot:debroot'],
+  )
+
+  packages_lockfile = checkout.root_dir.join('tools', 'debroot', 'cmd',
+                                             'packages.lock')
+  sysroot_dir = api.path.mkdtemp('sysroot')
+  debroot = build_results.tool('debroot')
+  assert debroot, 'failed to find debroot in tools_path manifest'
+  api.step('generate sysroot', [
+      debroot,
+      'install',
+      '-out',
+      sysroot_dir,
+      packages_lockfile,
+  ])
+
+  commit = bb_build.input.gitiles_commit
+  repository = 'https://%s/%s' % (commit.host, commit.project)
+  api.upload.cipd_package(
+      PACKAGE,
+      sysroot_dir,
+      [api.upload.DirectoryPath(sysroot_dir)],
+      search_tag={'git_revision': commit.id},
+      repository=repository,
+  )
+
+
+def GenTests(api):
+  yield api.fuchsia.test(
+      'basic',
+      properties={
+          'manifest': 'minimal',
+          'remote': 'https://fuchsia.googlesource.com',
+      },
+  )