<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <!-- This module was also published with a richer model, Gradle metadata,  -->
  <!-- which should be used instead. Do not delete the following line which  -->
  <!-- is to indicate to Gradle or any Gradle module metadata file consumer  -->
  <!-- that they should prefer consuming it instead. -->
  <!-- do_not_remove: published-with-gradle-metadata -->
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.android.tools.build</groupId>
  <artifactId>manifest-merger</artifactId>
  <version>30.3.0-alpha08</version>
  <dependencies>
    <dependency>
      <groupId>com.android.tools</groupId>
      <artifactId>common</artifactId>
      <version>30.3.0-alpha08</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>com.android.tools</groupId>
      <artifactId>sdklib</artifactId>
      <version>30.3.0-alpha08</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>com.android.tools</groupId>
      <artifactId>sdk-common</artifactId>
      <version>30.3.0-alpha08</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.8.6</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.jetbrains.kotlin</groupId>
      <artifactId>kotlin-stdlib-jdk8</artifactId>
      <version>1.5.31</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>net.sf.kxml</groupId>
      <artifactId>kxml2</artifactId>
      <version>2.3.0</version>
      <scope>runtime</scope>
    </dependency>
  </dependencies>
  <description>A Library to merge Android manifests.</description>
  <url>https://developer.android.com/studio/build</url>
  <name>com.android.tools.build.manifest-merger</name>
  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <developers>
    <developer>
      <name>The Android Open Source Project</name>
    </developer>
  </developers>
  <scm>
    <connection>git://android.googlesource.com/platform/tools/base.git</connection>
    <url>https://android.googlesource.com/platform/tools/base</url>
  </scm>
</project>
