                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   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.

------------------------------------------------------------------------------------
This project bundles some components that are also licensed under the Apache
License Version 2.0:

cloud.localstack:localstack-utils:0.2.19
com.101tec:zkclient:0.7
com.chuusai:shapeless_2.12:2.3.3
com.clearspring.analytics:stream:2.7.0
com.esri.geometry:esri-geometry-api:2.2.0
com.fasterxml.jackson.core:jackson-annotations:2.12.7
com.fasterxml.jackson.core:jackson-core:2.12.7
com.fasterxml.jackson.core:jackson-databind:2.12.7
com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.12.7
com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.12.7
com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.12.7
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.7
com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.12.7
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.12.7
com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:2.12.7
com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.12.7
com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.12.7
com.fasterxml.jackson.module:jackson-module-jsonSchema:2.12.7
com.fasterxml.jackson.module:jackson-module-scala_2.12:2.12.7
com.fasterxml.woodstox:woodstox-core:5.0.3
com.github.ben-manes.caffeine:caffeine:2.6.2
com.github.os72:protobuf-dynamic:1.0.1
com.google.android:annotations:4.1.1.4
com.google.api-client:google-api-client:1.30.10
com.google.api.grpc:proto-google-common-protos:1.18.1
com.google.api.grpc:proto-google-iam-v1:1.0.0
com.google.apis:google-api-services-storage:v1-rev20200814-1.30.10
com.google.auto.value:auto-value-annotations:1.7.2
com.google.cloud:google-cloud-core-http:1.93.8
com.google.cloud:google-cloud-core:1.93.8
com.google.cloud:google-cloud-nio:0.120.0-alpha
com.google.cloud:google-cloud-storage:1.113.1
com.google.code.findbugs:jsr305:3.0.0
com.google.code.gson:gson:2.2.4
com.google.errorprone:error_prone_annotations:2.3.4
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:20.0
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
com.google.http-client:google-http-client-appengine:1.36.0
com.google.http-client:google-http-client-jackson2:1.36.0
com.google.http-client:google-http-client:1.36.0
com.google.j2objc:j2objc-annotations:1.3
com.google.oauth-client:google-oauth-client:1.31.0
com.google.uzaygezen:uzaygezen-core:0.2
com.jayway.jsonpath:json-path:2.7.0
com.lmax:disruptor:3.3.4
com.squareup.okio:okio:1.6.0
com.squareup.wire:wire-runtime:3.2.2
com.squareup.wire:wire-schema:3.2.2
com.tdunning:t-digest:3.2
com.twitter:chill-java:0.7.6
com.twitter:chill_2.12:0.7.6
com.typesafe.akka:akka-actor_2.12:2.5.21
com.typesafe.akka:akka-protobuf_2.12:2.5.21
com.typesafe.akka:akka-slf4j_2.12:2.5.21
com.typesafe.akka:akka-stream_2.12:2.5.21
com.typesafe.netty:netty-reactive-streams-http:2.0.4
com.typesafe.netty:netty-reactive-streams:2.0.4
com.typesafe.scala-logging:scala-logging_2.12:3.9.2
com.typesafe:config:1.3.3
com.typesafe:ssl-config-core_2.12:0.3.7
com.uber:h3:3.7.2
com.yahoo.datasketches:memory:0.8.3
com.yahoo.datasketches:sketches-core:0.8.3
com.yammer.metrics:metrics-core:2.2.0
com.zaxxer:HikariCP-java7:2.4.13
commons-cli:commons-cli:1.2
commons-codec:commons-codec:1.15
commons-collections:commons-collections:3.2.2
commons-configuration:commons-configuration:1.10
commons-httpclient:commons-httpclient:3.1
commons-io:commons-io:2.11.0
commons-lang:commons-lang:2.6
commons-logging:commons-logging:1.2
commons-pool:commons-pool:1.6
info.picocli:picocli:4.6.1
io.airlift:aircompressor:0.10
io.circe:circe-core_2.12:0.13.0
io.circe:circe-generic_2.12:0.13.0
io.circe:circe-jawn_2.12:0.13.0
io.circe:circe-numbers_2.12:0.13.0
io.circe:circe-parser_2.12:0.13.0
io.confluent:common-config:5.5.3
io.confluent:common-utils:5.5.3
io.confluent:kafka-avro-serializer:5.5.3
io.confluent:kafka-protobuf-serializer:5.5.3
io.confluent:kafka-schema-registry-client:5.5.3
io.confluent:kafka-schema-serializer:5.5.3
io.dropwizard.metrics:metrics-core:4.2.2
io.dropwizard.metrics:metrics-jmx:4.2.2
io.grpc:grpc-api:1.41.0
io.grpc:grpc-context:1.14.0
io.grpc:grpc-core:1.41.0
io.grpc:grpc-netty-shaded:1.41.0
io.grpc:grpc-protobuf-lite:1.19.0
io.grpc:grpc-protobuf:1.41.0
io.grpc:grpc-stub:1.41.0
io.netty:netty-all:4.1.79.Final
io.netty:netty-buffer:4.1.79.Final
io.netty:netty-codec-dns:4.1.79.Final
io.netty:netty-codec-haproxy:4.1.79.Final
io.netty:netty-codec-http2:4.1.79.Final
io.netty:netty-codec-http:4.1.79.Final
io.netty:netty-codec-memcache:4.1.79.Final
io.netty:netty-codec-mqtt:4.1.79.Final
io.netty:netty-codec-redis:4.1.79.Final
io.netty:netty-codec-smtp:4.1.79.Final
io.netty:netty-codec-socks:4.1.79.Final
io.netty:netty-codec-stomp:4.1.79.Final
io.netty:netty-codec-xml:4.1.79.Final
io.netty:netty-codec:4.1.79.Final
io.netty:netty-common:4.1.79.Final
io.netty:netty-handler-proxy:4.1.79.Final
io.netty:netty-handler:4.1.79.Final
io.netty:netty-resolver-dns-classes-macos:4.1.79.Final
io.netty:netty-resolver-dns-native-macos:4.1.79.Final
io.netty:netty-resolver-dns-native-macos:4.1.79.Final
io.netty:netty-resolver-dns:4.1.79.Final
io.netty:netty-resolver:4.1.79.Final
io.netty:netty-tcnative-boringssl-static:2.0.53.Final
io.netty:netty-tcnative-classes:2.0.53.Final
io.netty:netty-transport-classes-epoll:4.1.79.Final
io.netty:netty-transport-classes-kqueue:4.1.79.Final
io.netty:netty-transport-native-epoll:4.1.79.Final
io.netty:netty-transport-native-epoll:4.1.79.Final
io.netty:netty-transport-native-kqueue:4.1.79.Final
io.netty:netty-transport-native-kqueue:4.1.79.Final
io.netty:netty-transport-native-unix-common:4.1.79.Final
io.netty:netty-transport-rxtx:4.1.79.Final
io.netty:netty-transport-sctp:4.1.79.Final
io.netty:netty-transport-udt:4.1.79.Final
io.netty:netty-transport:4.1.79.Final
io.opencensus:opencensus-api:0.24.0
io.opencensus:opencensus-contrib-http-util:0.24.0
io.perfmark:perfmark-api:0.23.0
io.projectreactor.netty:reactor-netty-core:1.0.15
io.projectreactor.netty:reactor-netty-http:1.0.15
io.projectreactor:reactor-core:3.4.14
io.prometheus:simpleclient:0.8.1
io.prometheus:simpleclient_common:0.8.1
io.prometheus:simpleclient_hotspot:0.8.1
io.swagger:swagger-annotations:1.6.2
io.swagger:swagger-core:1.6.6
io.swagger:swagger-jaxrs:1.6.6
io.swagger:swagger-jersey2-jaxrs:1.6.6
io.swagger:swagger-models:1.6.6
it.unimi.dsi:fastutil:8.2.3
jakarta.validation:jakarta.validation-api:2.0.2
javax.inject:javax.inject:1
javax.validation:validation-api:2.0.1.Final
joda-time:joda-time:2.10.5
net.java.dev.jna:jna:4.1.0
net.minidev:accessors-smart:1.2
net.minidev:json-smart:2.3
org.apache.avro:avro-protobuf:1.9.1
org.apache.avro:avro:1.9.2
org.apache.bookkeeper:bookkeeper-common-allocator:4.12.0
org.apache.bookkeeper:circe-checksum:4.12.0
org.apache.calcite.avatica:avatica-core:1.20.0
org.apache.calcite:calcite-babel:1.29.0
org.apache.calcite:calcite-core:1.29.0
org.apache.calcite:calcite-linq4j:1.29.0
org.apache.commons:commons-collections4:4.1
org.apache.commons:commons-compress:1.21
org.apache.commons:commons-csv:1.0
org.apache.commons:commons-lang3:3.11
org.apache.commons:commons-math3:3.2
org.apache.commons:commons-math:2.1
org.apache.datasketches:datasketches-java:1.2.0-incubating
org.apache.datasketches:datasketches-memory:1.2.0-incubating
org.apache.flink:flink-annotations:1.12.0
org.apache.flink:flink-core:1.12.0
org.apache.flink:flink-file-sink-common:1.12.0
org.apache.flink:flink-hadoop-fs:1.12.0
org.apache.flink:flink-java:1.12.0
org.apache.flink:flink-metrics-core:1.12.0
org.apache.flink:flink-queryable-state-client-java:1.12.0
org.apache.flink:flink-runtime_2.12:1.12.0
org.apache.flink:flink-shaded-asm-7:7.1-12.0
org.apache.flink:flink-shaded-guava:18.0-12.0
org.apache.flink:flink-shaded-jackson:2.10.1-12.0
org.apache.flink:flink-shaded-netty:4.1.49.Final-12.0
org.apache.flink:flink-shaded-zookeeper-3:3.4.14-12.0
org.apache.flink:flink-streaming-java_2.12:1.12.0
org.apache.flink:force-shading:1.12.0
org.apache.helix:helix-common:1.0.4
org.apache.helix:helix-core:1.0.4
org.apache.helix:metadata-store-directory-common:1.0.4
org.apache.helix:metrics-common:1.0.4
org.apache.helix:zookeeper-api:1.0.4
org.apache.hive:hive-storage-api:2.7.1
org.apache.httpcomponents:httpclient:4.5.13
org.apache.httpcomponents:httpcore:4.4.13
org.apache.httpcomponents:httpmime:4.5.13
org.apache.kafka:kafka-clients:2.8.1
org.apache.kafka:kafka-metadata:2.8.1
org.apache.kafka:kafka-raft:2.8.1
org.apache.kafka:kafka_2.10:0.9.0.1
org.apache.kafka:kafka_2.12:2.8.1
org.apache.logging.log4j:log4j-1.2-api:2.17.1
org.apache.logging.log4j:log4j-api:2.17.1
org.apache.logging.log4j:log4j-core:2.17.1
org.apache.logging.log4j:log4j-slf4j-impl:2.17.1
org.apache.lucene:lucene-analyzers-common:8.2.0
org.apache.lucene:lucene-core:8.2.0
org.apache.lucene:lucene-queries:8.2.0
org.apache.lucene:lucene-queryparser:8.2.0
org.apache.lucene:lucene-sandbox:8.2.0
org.apache.orc:orc-core:1.5.9
org.apache.orc:orc-shims:1.5.9
org.apache.parquet:parquet-avro:1.11.1
org.apache.parquet:parquet-column:1.11.1
org.apache.parquet:parquet-common:1.11.1
org.apache.parquet:parquet-encoding:1.11.1
org.apache.parquet:parquet-format-structures:1.11.1
org.apache.parquet:parquet-hadoop:1.11.1
org.apache.parquet:parquet-jackson:1.11.1
org.apache.pulsar:bouncy-castle-bc:2.7.2
org.apache.pulsar:protobuf-shaded:2.1.0-incubating
org.apache.pulsar:pulsar-client-admin-original:2.7.2
org.apache.pulsar:pulsar-client-api:2.7.2
org.apache.pulsar:pulsar-client-original:2.7.2
org.apache.pulsar:pulsar-common:2.7.2
org.apache.pulsar:pulsar-transaction-common:2.7.2
org.apache.thrift:libthrift:0.15.0
org.apache.yetus:audience-annotations:0.13.0
org.apache.zookeeper:zookeeper-jute:3.5.8
org.apache.zookeeper:zookeeper:3.5.8
org.apiguardian:apiguardian-api:1.1.0
org.asynchttpclient:async-http-client-netty-utils:2.12.3
org.asynchttpclient:async-http-client:2.12.3
org.codehaus.groovy:groovy-all:2.4.21
org.codehaus.jackson:jackson-core-asl:1.9.13
org.codehaus.jackson:jackson-mapper-asl:1.9.13
org.eclipse.jetty:jetty-http:9.4.45.v20220203
org.eclipse.jetty:jetty-io:9.4.45.v20220203
org.eclipse.jetty:jetty-security:9.4.45.v20220203
org.eclipse.jetty:jetty-server:9.4.45.v20220203
org.eclipse.jetty:jetty-servlet:9.4.45.v20220203
org.eclipse.jetty:jetty-util-ajax:9.4.45.v20220203
org.eclipse.jetty:jetty-util:9.4.45.v20220203
org.javassist:javassist:3.19.0-GA
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.71
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.71
org.jetbrains.kotlin:kotlin-stdlib:1.4.0
org.jetbrains:annotations:13.0
org.lz4:lz4-java:1.8.0
org.objenesis:objenesis:2.1
org.quartz-scheduler:quartz:2.3.2
org.roaringbitmap:RoaringBitmap:0.9.28
org.roaringbitmap:shims:0.9.28
org.scala-lang.modules:scala-collection-compat_2.12:2.3.0
org.scala-lang.modules:scala-java8-compat_2.12:0.9.1
org.scala-lang.modules:scala-xml_2.12:1.3.0
org.typelevel:macro-compat_2.12:1.1.1
org.webjars:swagger-ui:3.23.11
org.wildfly.openssl:wildfly-openssl:1.0.7.Final
org.xerial.larray:larray-buffer:0.4.1
org.xerial.larray:larray-mmap:0.4.1
org.xerial.snappy:snappy-java:1.1.8.2
org.yaml:snakeyaml:1.30
software.amazon.awssdk:annotations:2.14.28
software.amazon.awssdk:apache-client:2.14.28
software.amazon.awssdk:arns:2.14.28
software.amazon.awssdk:auth:2.14.28
software.amazon.awssdk:aws-cbor-protocol:2.14.28
software.amazon.awssdk:aws-core:2.14.28
software.amazon.awssdk:aws-json-protocol:2.14.28
software.amazon.awssdk:aws-query-protocol:2.14.28
software.amazon.awssdk:aws-xml-protocol:2.14.28
software.amazon.awssdk:http-client-spi:2.14.28
software.amazon.awssdk:kinesis:2.14.28
software.amazon.awssdk:metrics-spi:2.14.28
software.amazon.awssdk:netty-nio-client:2.14.28
software.amazon.awssdk:profiles:2.14.28
software.amazon.awssdk:protocol-core:2.14.28
software.amazon.awssdk:regions:2.14.28
software.amazon.awssdk:s3:2.14.28
software.amazon.awssdk:sdk-core:2.14.28
software.amazon.awssdk:sts:2.14.28
software.amazon.awssdk:utils:2.14.28
software.amazon.eventstream:eventstream:1.0.1
xml-apis:xml-apis:1.4.01


------------------------------------------------------------------------------------
This product bundles various third-party components under other open source licenses.
This section summarizes those components and their licenses. See "licenses/" for text
of these licenses.


MIT License
-----------
com.azure:azure-core-http-netty:1.11.8
com.azure:azure-core:1.26.0
com.azure:azure-storage-blob:12.15.0
com.azure:azure-storage-common:12.15.0
com.azure:azure-storage-file-datalake:12.8.0
com.azure:azure-storage-internal-avro:12.2.0
com.microsoft.azure:azure-data-lake-store-sdk:2.3.9
com.github.scopt:scopt_2.12:3.5.0
net.sf.jopt-simple:jopt-simple:4.6
net.sourceforge.argparse4j:argparse4j:0.7.0
org.checkerframework:checker-compat-qual:2.5.5
org.checkerframework:checker-qual:3.10.0
org.codehaus.mojo:animal-sniffer-annotations:1.17
org.reactivestreams:reactive-streams:1.0.3
org.typelevel:cats-core_2.12:2.1.0
org.typelevel:cats-kernel_2.12:2.1.0
org.typelevel:cats-macros_2.12:2.1.0
org.typelevel:jawn-parser_2.12:1.0.0
org.slf4j:jul-to-slf4j:1.7.25
org.slf4j:slf4j-api:1.7.25


BSD
---
com.thoughtworks.paranamer:paranamer:2.8


BSD 2-Clause
------------
com.github.luben:zstd-jni:1.5.2-3
org.clapper:grizzled-slf4j_2.12:1.3.2
org.codehaus.woodstox:stax2-api:3.1.4


BSD 3-Clause
------------
com.esotericsoftware.kryo:kryo:2.24.0
com.esotericsoftware.minlog:minlog:1.2
com.google.api:api-common:1.10.0
com.google.api:gax-httpjson:0.75.2
com.google.api:gax:1.58.2
com.google.auth:google-auth-library-credentials:0.21.1
com.google.auth:google-auth-library-oauth2-http:0.21.1
com.google.protobuf:protobuf-java-util:3.13.0
com.google.protobuf:protobuf-java:3.19.2
com.google.protobuf:protobuf-lite:3.0.1
com.jcabi:jcabi-aspects:0.22
com.jcabi:jcabi-log:0.17.1
org.antlr:antlr4-runtime:4.6
org.codehaus.janino:commons-compiler:3.1.6
org.codehaus.janino:janino:3.1.6
org.ow2.asm:asm:5.0.4
org.scala-lang:scala-library:2.10.5
org.scala-lang.modules:scala-parser-combinators_2.12:1.1.1
org.scala-lang.modules:scala-xml_2.11:1.0.6
org.threeten:threeten-extra:1.5.0
org.threeten:threetenbp:1.4.4


Common Development and Distribution License (CDDL) 1.0
------------------------------------------------------
(see licenses/LICENSE-cddl-1.0.txt)

javax.activation:activation:1.2.0
javax.annotation:javax.annotation-api:1.2
javax.servlet:javax.servlet-api:3.0.1
org.glassfish.jersey.containers:jersey-container-servlet-core:2.35


Common Development and Distribution License (CDDL) 1.1
------------------------------------------------------
(see licenses/LICENSE-cddl-1.1.txt)

com.sun.xml.bind:jaxb-core:2.3.0
javax.ws.rs:javax.ws.rs-api:2.0.1
javax.xml.bind:jaxb-api:2.2.11


Eclipse Public License (EPL) 1.0
--------------------------------
(see licenses/LICENSE-epl-1.0.txt)

com.mchange:c3p0:0.9.5.4
com.mchange:mchange-commons-java:0.2.15
org.aspectj:aspectjrt:1.8.4
org.locationtech.jts:jts-core:1.16.1


Eclipse Public License (EPL) 2.0
-------------------------------
(see licenses/LICENSE-epl-2.0.txt)

jakarta.annotation:jakarta.annotation-api:1.3.5
jakarta.ws.rs:jakarta.ws.rs-api:2.1.6
org.glassfish.grizzly:grizzly-framework:2.4.4
org.glassfish.grizzly:grizzly-http-server:2.4.4
org.glassfish.grizzly:grizzly-http:2.4.4
org.glassfish.hk2.external:aopalliance-repackaged:2.6.1
org.glassfish.hk2.external:jakarta.inject:2.6.1
org.glassfish.hk2:hk2-api:2.6.1
org.glassfish.hk2:hk2-locator:2.6.1
org.glassfish.hk2:hk2-utils:2.6.1
org.glassfish.hk2:osgi-resource-locator:1.0.3
org.glassfish.jersey.containers:jersey-container-grizzly2-http:2.35
org.glassfish.jersey.core:jersey-client:2.35
org.glassfish.jersey.core:jersey-common:2.35
org.glassfish.jersey.core:jersey-server:2.35
org.glassfish.jersey.ext:jersey-entity-filtering:2.35
org.glassfish.jersey.inject:jersey-hk2:2.35
org.glassfish.jersey.media:jersey-media-json-jackson:2.35
org.glassfish.jersey.media:jersey-media-multipart:2.35
org.glassfish.tyrus.bundles:tyrus-standalone-client:1.15


Eclipse Distribution License (EDL) 1.0
--------------------------------------
(see licenses/LICENSE-edl-1.0.txt)

com.sun.activation:jakarta.activation:1.2.2
jakarta.activation:jakarta.activation-api:1.2.1
jakarta.xml.bind:jakarta.xml.bind-api:2.3.2
org.jvnet.mimepull:mimepull:1.9.13


WTFPL License
-------------
org.reflections:reflections:0.9.11


Creative Commons Attribution License (CC BY 2.5)
------------------------------------------------
net.jcip:jcip-annotations:1.0


Bounty Castle License
---------------------
org.bouncycastle:bcpkix-jdk15to18:1.68
org.bouncycastle:bcprov-ext-jdk15to18:1.68
org.bouncycastle:bcprov-jdk15to18:1.68


ISC License
-----------

org.mindrot:jbcrypt:0.4
