Apache Syncope
Copyright 2012-2022 The Apache Software Foundation

This product includes software developed by:
The Apache Software Foundation (http://www.apache.org/).

The following copyright notice(s) were affixed to portions of this code
with which this file is now or was at one time distributed.

==

This product includes software developed by the Jackson project.

==

This product includes software developed by the Java Uuid Generator (JUG) project.

==

This product includes software developed by the Caffeine project.
Copyright (c) 2021 Ben Manes. All Rights Reserved.

==

This product includes software developed by Error Prone.

==

This product includes software developed by the Google Guava project.
Copyright (c) 2016 The Guava Authors.

==

This product includes software developed by J2ObjC: Java to Objective-C Translator and Runtime.

==

This product includes software developed by mchange-commons-java
Copyright (C) 2015 Machinery For Change, Inc.

==

This product includes software developed by Nimbus Content Type
Copyright 2020, Connect2id Ltd

==

This product includes software developed by Nimbus Language Tags
Copyright 2012-2022, Connect2id Ltd

==

This product includes software developed by Nimbus JOSE-JWT
Copyright 2012-2022, Connect2id Ltd

==

This product includes software developed by OAuth 2.0 SDK with OpenID Connect extensions
Copyright 2012-2022, Connect2id Ltd

==

This product includes software developed by the JAXB project.
Copyright (c) 2013-2016 The JAXB project.

==

This product includes software produced and maintained by Eclipse Metro
All content is the property of the respective authors or their employers.

==

This product includes software developed by QDox.
Copyright 2002-2009 Joe Walnes and QDox Project Team

==

This product includes software developed by UnboundID LDAP SDK for Java
Copyright 2007-2022 Ping Identity Corporation

==

This product includes software developed by the HikariCP project.

==

This product includes software produced and maintained by Jakarta Activation project
All content is the property of the respective authors or their employers.

==

This product includes software produced and maintained by Jakarta Eclipse Implementation of JAXB
All content is the property of the respective authors or their employers.

==

This product includes software produced and maintained by Jakarta XML Web Services
All content is the property of the respective authors or their employers.

==

This product includes software developed by the Metrics project.
Copyright (c) 2010-2014 Coda Hale, Yammer.com

==

This product includes software developed by the ClassGraph project.
Copyright (c) 2020 Luke Hutchison

==

This product includes software developed by Micrometer Application Metrics
Copyright (c) 2017-Present VMware, Inc. All Rights Reserved.

==

This product includes software developed by Netty
Copyright 2014 The Netty Project

==

This product includes software developed by the Swagger project.
Copyright 2016 SmartBear Software

==

This product includes software produced and maintained by Jakarta Annotations
All content is the property of the respective authors or their employers.

==

This product includes software produced and maintained by Jakarta Persistence project
All content is the property of the respective authors or their employers.

==

This product includes software developed by the Eclipse Project for JAX-RS.
Eclipse Project for JAX-RS is a trademark of the Eclipse Foundation.
All content is the property of the respective authors or their employers. For more information regarding authorship of content, please consult the listed source code repository logs.

==

This product includs software developed by Oracle.
Copyright (c) 2012-2013 Oracle and/or its affiliates. All rights reserved.

==

This product includes software developed by the Bean Validation Project (http://beanvalidation.org).
Copyright (c) Red Hat, Inc., Emmanuel Bernard

==

This product includes software developed by the Joda Time project.
Copyright (c) 2002-2016 Joda.org. All Rights Reserved.

==

This product includes software developed by the SERP Project.
Copyright (c) 2002-2007, A. Abram White http://serp.sourceforge.net/
All rights reserved.

==

This product includes software developed by the ConnId project.
Copyright 2008-2009 Sun Microsystems, Inc. All rights reserved.
Copyright 2011-2016 Tirasa S.r.l. All rights reserved.

==

This product includes software developed by the ANTLR project.
Copyright (c) 2012 Terence Parr and Sam Harwell. All rights reserved.

==

This product includes AspectJ (>= 1.52) software developed by the Eclipse
Software Foundation.

==

This product includes software developed by the Legion of the Bouncy Castle.
Copyright (c) 2000-2016 The Legion of the Bouncy Castle Inc. (http://www.bouncycastle.org)

==

This product includes software developed by The Checker Framework.
Copyright (c) 2004-present by the Checker Framework developers

==

This product includes software developed by MojoHaus AnimalSniffer Maven Plugin
Copyright (c) 2009, codehaus.org

==

This product includes software developed by the Stax 2 Extension API Project.

==

This product includes software developed by the Woodstox Project.

==

This product includes software developed by the Flowable project.

==

This product includes software produced and maintained by Jakarta JSON Processing
All content is the property of the respective authors or their employers.

==

This project includes software developed by the Jasypt project.
Copyright (c) 2014 The JASYPT team. All Rights Reserved

==

This product includes softare developed by the Javassist project.
Copyright (C) 1999- by Shigeru Chiba, All rights reserved.

==

This product includes software developed by Ldaptive Java Library
Copyright (C) 2003-2021 Virginia Tech. All Rights Reserved.

==

This product includes software developed by the Liquibase project.

==

This product includes software developed by the MyBatis project.

==

This product includes software developed by the Shibboleth project.

==

This product includes software developed by the ASM project.
Copyright (c) 2000-2011 INRIA, France Telecom
All rights reserved.

==

This product includes software developed by Passay
Copyright (C) 2003-2022 Virginia Tech. All rights reserved.

==

This product includes software developed by Terracotta. Inc.
Quartz Scheduler source code and documentation are Copyright (c) Terracotta, Inc.

==

This products includes software developed by the Simple Logging Facade for Java (SLF4J) project.
Copyright (c) 2004-2016 QOS.ch.

==

This product includes software developed by SpringSource.
Copyright (c) 2004-2022 SpringSource
All rights reserved.

==

This product includes software developed by the SnakeYAML project.
