Apache Syncope
Copyright 2012-2023 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 Animate.css project.
Copyright (c) 2016 Daniel Eden

==

This product includes software developed by the AOP Alliance (Java/J2EE AOP standards).

==

This product includes software developed by the args4j project.
Copyright (c) 2013 Kohsuke Kawaguchi and other contributors

==

This product includes software developed by the Bootbox.js project.
Copyright (C) 2011-2015 by Nick Payne nick@kurai.co.uk

==

This product includes software developed by the Bootstrap project.
Copyright (c) 2011-2016 Twitter, Inc.

==

This product includes software developed by the bootstrap-select project.
Copyright (c) 2013-2015 bootstrap-select]

==

This product includes software developed by the Modernizr project.
Copyright (C) 2016

==

This product includes software developed by COSE-JAVA
Copyright (c) 2016, All rights reserved.

==

This product includes software developed by Auth0 Java JWT
Copyright (c) 2015 Auth0, Inc. <support@auth0.com> (http://auth0.com)

==

This product includes software developed by Duo Auth API
Copyright (c) 2012, Duo Security, Inc.

==

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 the Open JSON project.

==

This product includes software developed by Operating System and Hardware Information
Copyright (c) 2016-2022 The OSHI Project Contributors

==

This product includes software developed by ScribeJava
Copyright (c) 2010 Pablo Fernandez

==

This product includes software developed by the Gson project.
Copyright (c) 2008 Google Inc.

==

This product includes software developed by Elemental2
Copyright 2018 Google Inc.

==

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 The Closure Compiler.
Copyright (c) 2009 The Closure Compiler Authors.

==

This product includes software developed by JsInterop Base
Copyright 2017 Google Inc.

==

This product includes software developed by JsInterop Annotations.
Copyright (c) 2019 Google Inc. All Rights Reserved.

==

This product includes software developed by Protocol Buffers
Copyright 2008 Google Inc. All rights reserved.

==

This product includes software developed by RE2/J
Copyright (c) 2009 The Go Authors. All rights reserved.

==

This product includes software developed by ZXing
Copyright: 2007-2020, ZXing authors

==

This product includes software developed by OWASP Java HTML Sanitizer.
Copyright (c) 2011, Mike Samuel
All rights reserved.

==

This product includes software developed by the Wicket - jQuery UI project.
Copyright 2012-2013 Sebastien Briquet

==

This product includes software developed by the GreenMail project.
Copyright (c) 2006 - 2019, Wael Chatila and GreenMail project contributors

==

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

==

This product includes software developed by Microsoft OAuth 2.0 User Agent library for Java
Copyright (c) Microsoft Corporation

==

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 Okio
Copyright 2013 Square, Inc.

==

This product includes software developed by Moshi
Copyright (C) 2020 Square, Inc.

==

This product includes software developed by OkHttp
Copyright (c) 2022 Square, Inc.

==

This product includes software developed by Retrofit
Copyright 2014 Square, Inc.

==

This product includes software developed by Jakarta Mail
Copyright (c) 1997, 2021 Oracle and/or its affiliates. All rights reserved.

==

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 Semver4j
Copyright (c) 2015-present Vincent DURMONT <vdurmont@gmail.com>

==

This product includes software developed by GoogleAuth
Copyright (c) 2013 Warren Strange
Copyright (c) 2014-2017 Enrico M. Crisostomo

==

This product includes software developed by Yubico
Copyright (c) 2014-2018, Yubico AB

==

This product includes software developed by the HikariCP project.

==

This product includes software developed by Dough Lea

==

This product includes software developed by DataTables
Copyright (c) 2008-present, SpryMedia Limited

==

This product includes software developed by de.cronn:reflection-util
Copyright © 2015-2021 the original authors.

==

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 es5-shim
Copyright (C) 2009-2016 Kristopher Michael Kowal and contributors

==

This product includes software developed by the google-diff-match-patch project.
Copyright (c) 2006 Google Inc.

==

This product includes software developed by HAL Explorer
Copyright (c) 2022 Kai Toedter <kai@toedter.com>

==

This product includes the Javascript syntax highlighter.
Copyright (c) 2006, Ivan Sagalaev

==

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 developed by the Ionicons project.
Copyright (c) 2016 Drifty (http://drifty.com/)

==

This product includes software developed by the slimScroll project.
Copyright (c) 2011 Piotr Rochala (http://rocha.la)

==

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 Expression Language 3.0 API
Copyright (c) 1997-2013 Oracle and/or its affiliates. All rights reserved.

==

This product includes software developed by Java(TM) Persistence API
Copyright (c) 2017 Oracle and/or its affiliates. All rights reserved.

==

This product includes software developed by Java Servlet API
Copyright (c) 1997-2017 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 SAAJ Standard Implementation (https://saaj.java.net/).
 Copyright (c) 2013 Oracle and/or its affiliates. All rights reserved.

==

This product includes software developed by the JAX-WS project.
 Copyright (c) 1997-2013 Oracle and/or its affiliates. All rights reserved.

==

This product includes software developed by the Jline v2 project.
Copyright (c) 2002-2016, the original author or authors.
All rights reserved.

==

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

==

This product includes the jQuery Core JavaScript Library.
Copyright 2007, 2016 jQuery Foundation and other contributors.

==

This product includes software developed by the jquery.cookie project.
Copyright 2014 Klaus Hartl

==

This product includes the jQuery UI JavaScript Library.
Copyright 2007, 2015 jQuery Foundation and other contributors.

==

This product includes software developed by the jQuery++ project.
Copyright (C) 2012 Bitovi

==

This product includes software developed by the jsPlumb project.
Copyright (c) 2010 - 2014 jsPlumb, http://jsplumbtoolkit.com/

==

This product includes software developed by Byte Buddy
Copyright 2014 - Present Rafael Winterhalter

==

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 Thymeleaf Expression Processor
Copyright 2016, Emanuel Rabina (http://www.ultraq.net.nz/)

==

This product includes software developed by Thymeleaf Layout Dialect
Copyright 2019, Emanuel Rabina (http://www.ultraq.net.nz/)

==

This product includes software developed by OGNL
Copyright (c) 2004, Drew Davidson and Luke Blanshard

==

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

==

This product includes software developed by Apereo CAS
Copyright 2022, The Apereo Foundation

==

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

==

This product includes software developed by attoparser
Copyright (c) 2012-2014, The ATTOPARSER team (http://www.attoparser.org)

==

This product includes software developed by jose.4.j
Copyright 2012-2015 Brian Campbell

==

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 Serializable java.util.function Interfaces.
Copyright (c) 2015 Jakub Danek

==

This product includes software developed by the Flowable project.

==

This product includes software developed by Java EE API modules repackaged as OSGi bundles in GlassFish
Copyright (c) 1997-2011 Oracle and/or its affiliates. All rights reserved.

==

This product includes software developed by Glassfish Expression Language Implementation.
Copyright (c) 1997-2011 Oracle and/or its affiliates. All rights reserved.

==

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

==

This product includes software developed by Hjson Library
Copyright (c) 2013, 2014 EclipseSource
Copyright (c) 2015-2016 Christian Zangl

==

This product includes software developed by Java Apereo CAS Client
Copyright (c) 2007, JA-SIG, Inc.

==

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 the JDOM project.
 Copyright (C) 2000-2012 Jason Hunter & Brett McLaughlin.
 All rights reserved.

==

This product includes software developed by JetBrains Java Annotations
Copyright 2000-2021 JetBrains s.r.o.

==

This product includes software developed by jOOL
Copyright (c), Data Geekery GmbH, contact@datageekery.com

==

This product includes software developed by JSON in Java
Copyright (c) 2002 JSON.org

==

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 Objenesis
Copyright 2006-2022 the original author or authors.

==

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 Project Lombok
Copyright (C) 2009-2021 The Project Lombok Authors.

==

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

==

This product includes software developed by the Reflections project.

==

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 Spring openapi documentation
Copyright 2019-2020 the original author or authors.

==

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

==

This product includes software developed by Thymeleaf
Copyright (c) 2011-2018, The THYMELEAF team (http://www.thymeleaf.org)

==

This product includes software developed by unbescape
Copyright 2012 Twitter, Inc.

==

This product includes software developed by the Chart.js project.
Copyright (c) 2018 Chart.js Contributors

==

This product includes software developed by Moment.js.
Copyright (c) JS Foundation and other contributors

==

This product includes software developed by zxcvbn
Copyright (c) 2012-2016 Dan Wheeler and Dropbox, Inc.

==

This product includes software developed by balanced-match
Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>

==

This product includes software developed by base64-js
Copyright (c) 2014 Jameson Little

==

This product includes software developed by css-vars-ponyfill
Copyright (c) 2018 John Hildenbiddle

==

This product includes software developed by get-css-data
Copyright (c) 2018 John Hildenbiddle

==

This product includes software developed by Inputmask
Copyright (c) 2010 - 2018 Robin Herbots

==

This product includes software developed by Material Components for the web
Copyright 2018 Google Inc.

==

This product includes software developed by normalize.css
Copyright © Nicolas Gallagher and Jonathan Neal

==

This product includes software developed by Summernote
Copyright (c) 2015~ Summernote Team (https://github.com/orgs/summernote/people)

==

This product includes software developed by tslib
Copyright (c) Microsoft Corporation.

==

This product includes software developed by window.fetch polyfill
Copyright (c) 2014-2016 GitHub, Inc.

==

This product includes software developed by WicketStuff
Copyright (c) 1998-2004, Drew Davidson and Luke Blanshard

==

This product includes software developed by the SnakeYAML project.

==

This product includes software developed by popper.js
Copyright (c) 2021 Floating UI contributors

==

This product includes software developed by Tempus Dominus Bootstrap 4 Datetime Picker
Copyright (c) 2016 Tempus Dominus

==

This product includes software developed by Webjars-locator core functionality
Copyright (c) 2013 James Ward

==

This product includes software developed by the Web Services Description Language for Java project.
Copyright (c) Dice.
All Rights Reserved.
