<!--
 Copyright 2020 Google LLC

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<manifest>

  <include name="flaky_repos.xml" />

  <remote  name="cos"
           fetch="https://cos.googlesource.com"
           review="https://cos-review.googlesource.com"  />
  <default remote="cos" revision="refs/heads/master" sync-j="8" />
  <notice>
Your sources have been sync'd successfully.
  </notice>

  <!-- mirrored cros_sdk dependencies -->
  <project path="chromite"
           name="mirrors/cros/chromiumos/chromite"
           revision="af5911446cd05354464bc60274f91c6a304d6ade" />
  <project path="chromite/infra/proto"
           name="mirrors/cros/chromiumos/infra/proto"
           revision="7d375941e9256d22ec5d754c5acbbecb456aea33" />
  <project path="chromite/third_party/pyelftools"
           name="mirrors/cros/chromiumos/third_party/pyelftools"
           revision="0890b98431a9b2e637c18f719232d06a4e5c3cd8" />
  <project path="src/platform/crostestutils"
           name="mirrors/cros/chromiumos/platform/crostestutils"
           revision="110e8dfe269f7adef222713eba02dac64ecac7d8" />
  <project path="src/platform/vboot_reference"
           name="mirrors/cros/chromiumos/platform/vboot_reference"
           revision="524012c64c07f8673998428cca7f80e01a387f48" />
  <project path="src/third_party/autotest/files"
           name="mirrors/cros/chromiumos/third_party/autotest"
           revision="a89875894d9002518772c0c8eb0a3f7353926ad6" />
  <project path="src/platform/dev"
           name="mirrors/cros/chromiumos/platform/dev-util"
           revision="feacb4c76e7b9346cd29092a1ebcdf13665b85a6" />
  <project path="src/third_party/toolchain-utils"
           name="mirrors/cros/chromiumos/third_party/toolchain-utils"
           revision="089db6731d948eeff42acf2cd1037ae0253dc65c" />
  <project path="src/third_party/portage_tool"
           name="mirrors/cros/chromiumos/third_party/portage_tool"
           revision="608edc2b3da1b31929109f9f6f64cf0b6a112c0a" />
  <project path="src/chromium/depot_tools"
           name="mirrors/cros/chromium/tools/depot_tools"
           revision="fdd2cd6e5fc0c1e5584fc1136043f9509615f817" />
  <project path="src/third_party/coreboot"
           name="mirrors/cros/chromiumos/third_party/coreboot"
           revision="5148aeb85e2a785227ff74b7d15cd533e3b4a455" />
  <project path="src/third_party/modp_b64"
           name="mirrors/cros/aosp/platform/external/modp_b64"
           revision="467734f4870d3ab23968f5ebdd461f6112e4103b" />
  <project path="src/platform2"
           name="mirrors/cros/chromiumos/platform2"
           revision="f851a7c4cef3627f35952d368b169b070cab01a7" />

  <!-- COS sources -->
  <project path="src/overlays"
           name="cos/overlays/board-overlays" />
  <project path="src/third_party/portage-stable"
           name="third_party/overlays/portage-stable" />
  <project path="src/third_party/eclass-overlay"
           name="third_party/overlays/eclass-overlay" />
  <project path="src/third_party/chromiumos-overlay"
           sync-c="true"
           name="third_party/overlays/chromiumos-overlay" />
  <project path="src/scripts"
           name="third_party/platform/crosutils"
           revision="refs/heads/main" />
  <project path="src/repohooks"
           name="cos/repohooks" />
  <project path="src/platform/cobble"
           name="cos/cobble" />
  <project path="manifest" name="cos/manifest" >
      <copyfile src="LICENSE" dest="LICENSE" />
  </project>
  <project path="src/third_party/kernel/v4.19"
           name="third_party/kernel"
           revision="refs/heads/cos-4.19" />
  <project path="src/third_party/kernel/v5.4"
           name="third_party/kernel"
           revision="refs/heads/cos-5.4" />

  <repo-hooks enabled-list="pre-upload"
           in-project="cos/repohooks" />

</manifest>
