 


  <!doctype html>
<!--
 Generated by Apache Maven Doxia  at 2021-07-17  Rendered using Reflow Maven Skin 2.3.0 (http://devacfr.github.io/reflow-maven-skin)
-->
<html  xml:lang="en" lang="en">
        <head>
    <meta charset="UTF-8" />
    <title>Apache OpenMeetings Project &#x2013; Project Licenses</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="description" content="" />
      <meta http-equiv="content-language" content="en" />
                                                        <link href="../css/themes/cerulean/bootstrap.min.css" rel="stylesheet" />
    <link href="../css/fontawesome/all.min.css" rel="stylesheet" />
    <link href="../css/reflow-skin.css" rel="stylesheet" />
    
    <link rel="stylesheet" href="../js/styles/github.min.css" />

    <link href="../css/lightbox.css" rel="stylesheet" />
    <link href="../css/site.css" rel="stylesheet" />
    <link href="../css/print.css" rel="stylesheet" media="print" />
<link rel="stylesheet" href="../css/site.css"/>
        </head> <!-- end : head -->
<body class="page-licenses project-openmeetings-webservice anchorjs-enabled scrolltop-smooth-enabled m-toc-sidebar-enabled m-toc-sidebar-expanded m-toc-sidebar-autoexpandable toc-sidebar-fixed">
    <nav id="m-top-navbar" class="navbar navbar-expand-lg fixed-top navbar-dark bg-primary">
<div class="container">            <a class="navbar-brand mb-0 h1" href="../index.html">
            <span class="color-highlight">Apache</span> OpenMeetings
            </a>
            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#top-navbar-collapse-1" aria-controls="top-navbar-collapse-1" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="top-navbar-collapse-1">
                <ul class="nav navbar-nav ml-auto">
                    <li class="nav-item " ><a  href="../demo.html"  title="Demo"  class="nav-link" >Demo</a></li>
                    <li class="nav-item " ><a  href="../downloads.html"  title="Download"  class="nav-link" >Download</a></li>
                    <li class="nav-item " ><a  href="https://cwiki.apache.org/confluence/display/OPENMEETINGS"  title="Wiki"   class="externalLink nav-link" >Wiki</a></li>
                    <li class="nav-item dropdown">
                <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Parent Project <b class="caret"></b></a>
                        <div class="dropdown-menu">
                            <a href="../index.html" title="Openmeetings"  class="dropdown-item ">Openmeetings</a>
                        </div>
                    </li>
                    <li class="nav-item dropdown">
                <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Project <b class="caret"></b></a>
                        <div class="dropdown-menu">
                            <a href="index.html" title="About"  class="dropdown-item ">About</a>
                            <a href="project-info.html" title="Info"  class="dropdown-item ">Info</a>
                            <a href="summary.html" title="Summary"  class="dropdown-item ">Summary</a>
                            <a href="https://www.apache.org/licenses/" title="License"  class="dropdown-item ">License</a>
                            <a href="dependencies.html" title="Dependencies"  class="dropdown-item ">Dependencies</a>
                            <a href="dependency-convergence.html" title="Dependency Convergence"  class="dropdown-item ">Dependency Convergence</a>
                            <a href="rat-report.html" title="RAT Report"  class="dropdown-item ">RAT Report</a>
                            <a href="apidocs/index.html" title="JavaDoc" target="_blank" class="dropdown-item ">JavaDoc</a>
                        </div>
                    </li>
                </ul><!--/ul.navbar-nav -->
            </div><!--/.nav-collapse -->
</div> <!--/.container -->    </nav> <!--/.navbar -->
    <div class="main-body">
    <div class="header text-light bg-secondary" role="main">
        <div class="container container-fluid">
    <div id="banner" class="header--banner">
        <div class="row m-1">
          <div class="col-md-12">
            <div class="float-left header--banner--left bannerLeft">
                    <a href="../index.html">
            <img class="float-left m-2 img-fluid" src="../images/logo.png" alt="Apache OpenMeetings" />
            </a>
            </div>
            <div class="float-right header--banner--right bannerRight">
                    <a href="https://apache.org">
            <img class="float-left m-2 img-fluid" src="https://apache.org/img/asf_logo.png" alt="Apache" />
            </a>
            </div>
          </div>
        </div>
    </div>
        </div>
    </div> <!-- end : header -->
    <div class="row mt-5">
        <div class="d-xs-none d-sm-none d-md-none d-lg-block col-lg-2">
        </div>
        <main class="col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-8" role="main">
    <nav aria-label="breadcrumb">
        <ol class="breadcrumb">
            <li class="publishDate version-date">    Last Published: 2021-07-17</li>
        </ol>
    </nav>
        <section> 
 <h2 id="overview1">Overview</h2> 
 <a name="Overview"></a> 
 <p>Typically the licenses listed for the project are that of the project itself, and not of dependencies.</p> 
</section> 
<section> 
 <h2 id="project-licenses">Project Licenses</h2> 
 <a name="Project_Licenses"></a> 
 <section> 
  <h3 id="the-apache-software-license-version-20">The Apache Software License, Version 2.0</h3> 
  <a name="The_Apache_Software_License.2C_Version_2.0"></a> 
  <a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0">[Original text]</a> 
  <p>Copy of the license follows:</p> 
  <!-- Navigation --> 
  <header> 
   <div id="skiptocontent"> 
    <a href="https://www.apache.org/licenses/#maincontent">Skip to Main Content</a> 
   </div> 
   <nav class="navbar navbar-inverse navbar-fixed-top mainmenu"> 
    <div class="container"> 
     <div class="navbar-header"> 
      <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#mainnav-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> 
     </div> 
     <div class="collapse navbar-collapse" id="mainnav-collapse"> 
      <ul class="nav navbar-nav navbar-justified"> 
       <li> 
        <form class="visible-xs"> 
         <div class="input-group" style="width: 100%;"> 
          <script>
                    (function() {
                    var cx = '005703438322411770421:5mgshgrgx2u';
                    var gcse = document.createElement('script');
                    gcse.type = 'text/javascript';
                    gcse.async = true;
                    gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
                    '//cse.google.com/cse.js?cx=' + cx;
                    var s = document.getElementsByTagName('script')[0];
                    s.parentNode.insertBefore(gcse, s);
                    })();
                  </script> 
          <gcse:searchbox-only></gcse:searchbox-only> 
         </div> 
        </form> </li> 
       <li><a href="https://www.apache.org/index.html#news">News</a></li> 
       <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown" role="button">About&nbsp;<span class="caret"></span></a> 
        <ul class="dropdown-menu" role="menu"> 
         <li><a href="https://www.apache.org/foundation">Overview</a></li> 
         <li><a href="https://www.apache.org/foundation/how-it-works.html">Process</a></li> 
         <li><a href="https://www.apache.org/foundation/governance/">Governance</a></li> 
         <li><a href="https://www.apache.org/theapacheway/index.html">The Apache Way</a></li> 
         <li><a href="https://www.apache.org/foundation/governance/members.html">Membership</a></li> 
         <li><a href="https://community.apache.org/">Community</a></li> 
         <li><a href="https://diversity.apache.org/">Diversity &amp; Inclusion</a></li> 
         <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li> 
         <li><a href="https://www.apache.org/foundation/glossary.html">Glossary</a></li> 
         <li><a href="https://www.apache.org/apache-name">About Our Name</a></li> 
         <li><a href="https://www.apache.org/foundation/preFAQ.html">FAQ</a></li> 
         <li><a href="https://www.apache.org/foundation/contributing.html">Support Apache</a></li> 
         <li><a href="https://www.apache.org/press/">Media/Analysts</a></li> 
         <li><a href="https://www.apache.org/foundation/contact.html">Contact</a></li> 
        </ul> </li> 
       <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown" role="button">Make a Donation&nbsp;<span class="caret"></span></a> 
        <ul class="dropdown-menu" role="menu"> 
         <li><a href="https://www.apache.org/foundation/contributing.html">Donate Now</a></li> 
         <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via Credit Card</a></li> 
         <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via ACH</a></li> 
         <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via PayPal</a></li> 
         <li><a href="https://www.redbubble.com/people/comdev">Buy Swag</a></li> 
         <li><a href="https://smile.amazon.com/gp/chpf/homepage/ref=smi_se_scyc_srch_stsr?q=apache+software+foundation&amp;orig=%2F">Shop smile.amazon.com</a></li> 
         <li><a href="https://www.apache.org/foundation/sponsorship.html">ASF Sponsorship</a></li> 
         <li><a href="https://www.apache.org/foundation/thanks#targeted-sponsors">Targeted Sponsorship</a></li> 
         <li><a href="https://www.apache.org/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li> 
        </ul> </li> 
       <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdopwn-toggle" data-toggle="dropdown">The Apache Way&nbsp;<span class="caret"></span></a> 
        <ul class="dropdown-menu" role="menu"> 
         <li><a href="https://www.apache.org/theapacheway/index.html">The Apache Way</a></li> 
         <li><a href="https://s.apache.org/GhnI">Sustainable Open Source</a></li> 
         <li><a href="https://www.apache.org/foundation/how-it-works.html">How it Works</a></li> 
         <li><a href="https://www.apache.org/foundation/how-it-works.html#meritocracy">Merit</a></li> 
         <li><a href="https://blogs.apache.org/foundation/category/SuccessAtApache">Success at Apache</a></li> 
        </ul> </li> 
       <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdopwn-toggle" data-toggle="dropdown">Join Us&nbsp;<span class="caret"></span></a> 
        <ul class="dropdown-menu" role="menu"> 
         <li><a href="https://community.apache.org/gettingStarted/101.html">Getting Started</a></li> 
         <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li> 
         <li><a href="https://www.apachecon.com/">ApacheCon</a></li> 
         <li><a href="http://community.apache.org/calendars/">Community Events</a></li> 
         <li><a href="https://www.apache.org/travel/">Travel Assistance</a></li> 
         <li><a href="https://community.apache.org/gsoc.html">Summer of Code</a></li> 
         <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li> 
         <li><a href="https://community.apache.org/contributors/etiquette">Etiquette</a></li> 
         <li class="dropdown dropdown-submenu visible-xs"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret"></span></a> 
          <ul class="dropdown-menu" role="menu"> 
           <li><a href="https://www.apache.org/index.html#projects-list">Project List</a></li> 
           <li><a href="https://www.apache.org/foundation/how-it-works.html#management">How they work</a></li> 
           <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li> 
           <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li> 
           <li><a href="https://projects.apache.org/projects.html?name">Names</a></li> 
           <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li> 
           <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li> 
           <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li> 
           <li><a href="https://incubator.apache.org/">Apache Incubator</a></li> 
           <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li> 
           <li><a href="https://www.apache.org/foundation/marks/">Brand Management</a></li> 
          </ul> </li> 
         <li class="drowpdown dropdown-submenu visible-xs"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret"></span></a> 
          <ul class="dropdown-menu" role="menu"> 
           <li><a href="https://www.apache.org/foundation/how-it-works.html#roles">Roles</a></li> 
           <li><a href="https://www.apache.org/foundation/members.html">Members</a></li> 
           <li><a href="https://community.apache.org/contributors/">Committers</a></li> 
           <li><a href="https://www.apache.org/foundation/#who-runs-the-asf">Board of Directors</a></li> 
           <li><a href="https://www.apache.org/foundation/#who-runs-the-asf">Officers &amp; Project VPs</a></li> 
           <li><a href="https://community.zones.apache.org/map.html">Location Map</a></li> 
           <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li> 
           <li><a href="https://people.apache.org/">Committer Directory</a></li> 
          </ul> </li> 
         <li class="drowpdown dropdown-submenu visible-xs"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret"></span></a> 
          <ul class="dropdown-menu" role="menu"> 
           <li><a href="https://community.apache.org/about/">Community Development</a></li> 
           <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li> 
           <li><a href="https://community.apache.org/">Get Involved</a></li> 
           <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li> 
           <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li> 
           <li><a href="https://community.apache.org/calendars/">Community Events</a></li> 
           <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li> 
           <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li> 
          </ul> </li> 
         <li class="drowpdown dropdown-submenu visible-xs"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret"></span></a> 
          <ul class="dropdown-menu" role="menu"> 
           <li><a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a></li> 
           <li><a href="https://www.apache.org/foundation/license-faq.html">Licensing FAQ</a></li> 
           <li><a href="https://www.apache.org/licenses/contributor-agreements.html">Contributor License Agreements</a></li> 
           <li><a href="https://www.apache.org/licenses/contributor-agreements.html#grants">Software Grants</a></li> 
           <li><a href="https://www.apache.org/foundation/marks/list/">Trademarks</a></li> 
           <li><a href="https://www.apache.org/licenses/exports/">Exports</a></li> 
          </ul> </li> 
         <li class="drowpdown dropdown-submenu visible-xs"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret"></span></a> 
          <ul class="dropdown-menu" role="menu"> 
           <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsor the ASF</a></li> 
           <li><a href="https://www.apache.org/foundation/thanks">Sponsor Thanks</a></li> 
           <li><a href="https://www.apache.org/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li> 
           <li><a href="https://www.apache.org/foundation/contributing.html">Individual Donations</a></li> 
           <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li> 
          </ul> </li> 
        </ul> </li> 
       <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown" role="button">Downloads&nbsp;<span class="caret"></span></a> 
        <ul class="dropdown-menu" role="menu"> 
         <li><a href="https://downloads.apache.org/">Distribution</a></li> 
         <li><a href="https://projects.apache.org/releases.html">Releases</a></li> 
         <li><a href="https://www.apache.org/dyn/closer.lua">Mirrors</a></li> 
         <li><a href="https://status.apache.org/">Infrastructure Status</a></li> 
         <li><a href="https://www.apache.org/uptime/">Infrastructure Statistics</a></li> 
        </ul> </li> 
       <li class="dropdown hidden-xs"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown" role="button"><span class="glyphicon glyphicon-search" aria-hidden="true"></span><span class="sr-only">Search</span></a> 
        <ul class="dropdown-menu search-form" role="search"> 
         <li> 
          <div class="input-group" style="width: 100%; padding: 0 5px;"> 
           <script async src="https://cse.google.com/cse.js?cx=cb41d2753d228d8b7"></script> 
           <div class="gcse-search"></div> 
          </div> </li> 
        </ul> </li> 
      </ul> 
     </div> 
    </div> 
   </nav> 
  </header> 
  <!-- / Navigation --> 
  <header id="main-header" class="container"> 
   <div class="sideImg"> 
    <!-- <a class="visible-home" href="https://events.apache.org/"><img class="img-responsive" style="width: 100%;" src="https://www.apache.org/events/current-event-125x125.png" alt="Apache Events"></a> --> 
    <a class="visible-home" href="https://events.apache.org/x/current-event.html"> <img class="img-responsive img-fluid" style="width: 125px;" src="https://www.apachecon.com/event-images/default-square-light.png" alt="ApacheCon 2021 Coming Soon!"> </a> 
    <a class="hidden-home" href="https://www.apache.org/"><img class="img-responsive img-fluid" src="https://www.apache.org/img/asf-estd-1999-logo.jpg" alt="The Apache Software Foundation"></a> 
   </div> 
   <div class="main"> 
    <img class="img-responsive center-block visible-home img-fluid" src="https://www.apache.org/img/asf-estd-1999-logo.jpg" alt="Apache 20th Anniversary Logo"> 
    <h2 class="text-center" id="community-led-development-the-apache-way">Community-led development "The&nbsp;Apache&nbsp;Way"</h2> 
    <ul class="nav navbar-nav navbar-justified"> 
     <li class="drowpdown"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret hidden-sm"></span></a> 
      <ul class="dropdown-menu" role="menu"> 
       <li><a href="https://www.apache.org/index.html#projects-list">Project List</a></li> 
       <li><a href="https://www.apache.org/foundation/how-it-works.html#management">How they work</a></li> 
       <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li> 
       <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li> 
       <li><a href="https://projects.apache.org/projects.html?name">Names</a></li> 
       <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li> 
       <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li> 
       <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li> 
       <li><a href="https://incubator.apache.org/">Apache Incubator</a></li> 
       <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li> 
       <li><a href="https://www.apache.org/foundation/marks/">Brand Management</a></li> 
       <li><a href="https://www.apache.org/foundation/glossary.html">Glossary of Terms</a></li> 
      </ul> </li> 
     <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret hidden-sm"></span></a> 
      <ul class="dropdown-menu" role="menu"> 
       <li><a href="https://www.apache.org/foundation/how-it-works.html#roles">Roles</a></li> 
       <li><a href="https://www.apache.org/foundation/members.html">Members</a></li> 
       <li><a href="https://community.apache.org/contributors/">Committers</a></li> 
       <li><a href="https://www.apache.org/foundation/#who-runs-the-asf">Board of Directors</a></li> 
       <li><a href="https://www.apache.org/foundation/#who-runs-the-asf">Officers &amp; Project VPs</a></li> 
       <li><a href="https://diversity.apache.org/">Diversity &amp; Inclusion</a></li> 
       <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li> 
       <li><a href="https://people.apache.org/">Committer Directory</a></li> 
       <li><a href="https://community.zones.apache.org/map.html">Heat Map</a></li> 
      </ul> </li> 
     <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret hidden-sm"></span></a> 
      <ul class="dropdown-menu" role="menu"> 
       <li><a href="https://community.apache.org/about/">Community Development</a></li> 
       <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li> 
       <li><a href="https://community.apache.org/">Get Involved</a></li> 
       <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li> 
       <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li> 
       <li><a href="https://community.apache.org/calendars/">Community Events</a></li> 
       <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li> 
       <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li> 
      </ul> </li> 
     <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret hidden-sm"></span></a> 
      <ul class="dropdown-menu" role="menu"> 
       <li><a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a></li> 
       <li><a href="https://www.apache.org/foundation/license-faq.html">Licensing FAQ</a></li> 
       <li><a href="https://www.apache.org/licenses/contributor-agreements.html">Contributor License Agreements</a></li> 
       <li><a href="https://www.apache.org/licenses/contributor-agreements.html#grants">Software Grants</a></li> 
       <li><a href="https://www.apache.org/foundation/marks/list/">Trademarks</a></li> 
       <li><a href="https://www.apache.org/licenses/exports/">Exports</a></li> 
      </ul> </li> 
     <li class="dropdown"> <a href="https://www.apache.org/licenses/#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret hidden-sm"></span></a> 
      <ul class="dropdown-menu" role="menu"> 
       <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsor the ASF</a></li> 
       <li><a href="https://www.apache.org/foundation/thanks">Sponsor Thanks</a></li> 
       <li><a href="https://www.apache.org/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li> 
       <li><a href="https://www.apache.org/foundation/contributing.html">Individual Donations</a></li> 
       <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li> 
      </ul> </li> 
    </ul> 
   </div> 
   <div class="sideImg"> 
    <a href="https://www.apache.org/foundation/contributing.html"><img class="img-responsive img-fluid" src="https://www.apache.org/img/support-apache.jpg" alt="Apache Support Logo"></a> 
   </div> 
  </header> 
  <main id="maincontent"> 
   <div class="container"> 
    <h3 id="apache-license-version-201">Apache License, Version 2.0<a class="headerlink" href="https://www.apache.org/licenses/#apache-license-version-20" title="Permalink">¶</a></h3> 
    <ul> 
     <li>Text version: <a href="https://www.apache.org/licenses/LICENSE-2.0.txt">https://www.apache.org/licenses/LICENSE-2.0.txt</a></li> 
     <li>SPDX short identifier: <a href="https://spdx.org/licenses/Apache-2.0.html">Apache-2.0</a></li> 
     <li>OSI Approved License: <a href="https://opensource.org/licenses/Apache-2.0">https://opensource.org/licenses/Apache-2.0</a></li> 
    </ul> 
    <p>The 2.0 version of the Apache License, approved by the ASF in 2004, helps us achieve our goal of providing reliable and long-lived software products through collaborative, open-source software development.</p> 
    <p>All packages produced by the ASF are implicitly licensed under the Apache License, Version 2.0, unless otherwise explicitly stated.</p> 
    <div style="margin: 3em 10%; font-family:serif;text-align:justify; border: 1px solid black; padding: 2em;   box-shadow: 4px 8px #888888;"> 
     <p style="text-align:center"> <strong>Apache License<br>Version 2.0, January 2004<br></strong> <strong><a href="http://www.apache.org/licenses/">http://www.apache.org/licenses/</a></strong> </p> 
     <p>TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION</p> 
     <p><strong><a name="definitions">1. Definitions</a></strong>.</p> 
     <div style="margin-left: 1em;"> 
      <p>"<strong>License</strong>" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.</p> 
      <p>"<strong>Licensor</strong>" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.</p> 
      <p>"<strong>Legal Entity</strong>" 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, "<strong>control</strong>" 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.</p> 
      <p>"<strong>You</strong>" (or "<strong>Your</strong>") shall mean an individual or Legal Entity exercising permissions granted by this License.</p> 
      <p>"<strong>Source</strong>" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.</p> 
      <p>"<strong>Object</strong>" 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.</p> 
      <p>"<strong>Work</strong>" 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).</p> 
      <p>"<strong>Derivative Works</strong>" 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.</p> 
      <p>"<strong>Contribution</strong>" 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, "<strong>submitted</strong>" 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 "<strong>Not a Contribution.</strong>"</p> 
      <p>"<strong>Contributor</strong>" 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.</p> 
     </div> 
     <p><strong><a name="copyright">2. Grant of Copyright License</a></strong>. 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.</p> 
     <p><strong><a name="patent">3. Grant of Patent License</a></strong>. 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.</p> 
     <p><strong><a name="redistribution">4. Redistribution</a></strong>. 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:</p> 
     <ol style="list-style: lower-latin;"> 
      <li>You must give any other recipients of the Work or Derivative Works a copy of this License; and</li> 
      <li>You must cause any modified files to carry prominent notices stating that You changed the files; and</li> 
      <li>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</li> 
      <li>If the Work includes a "<strong>NOTICE</strong>" 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. <br> <br> 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. </li> 
     </ol> 
     <p><strong><a name="contributions">5. Submission of Contributions</a></strong>. 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.</p> 
     <p><strong><a name="trademarks">6. Trademarks</a></strong>. 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.</p> 
     <p><strong><a name="no-warranty">7. Disclaimer of Warranty</a></strong>. 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.</p> 
     <p><strong><a name="no-liability">8. Limitation of Liability</a></strong>. 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.</p> 
     <p><strong><a name="additional">9. Accepting Warranty or Additional Liability</a></strong>. 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.</p> 
     <p>END OF TERMS AND CONDITIONS</p> 
    </div> 
    <div class="page-header">
     <h1 id="how-to-apply-the-apache-license-to-your-work">How to apply the Apache License to your work<a class="headerlink" href="https://www.apache.org/licenses/#apply" title="Permalink">¶</a></h1>
    </div> 
    <p>Include a copy of the Apache License, typically in a file called LICENSE, in your work, and consider also including a NOTICE file that references the License.</p> 
    <p>To apply the Apache License to specific files in your work, attach the following boilerplate declaration, replacing the fields enclosed by brackets "[]" with your own identifying information. (Don't include the brackets!) Enclose the text in the appropriate comment syntax for the file format. We also recommend that you include a file or class name and description of purpose on the same "printed page" as the copyright notice for easier identification within third-party archives.</p> 
    <pre><code>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.
</code></pre> 
   </div> 
  </main> 
  <!-- Footer --> 
  <footer class="bg-primary"> 
   <div class="container"> 
    <div class="row"> 
     <br> 
     <div class="col-sm-1"> 
     </div> 
     <div class="col-sm-2"> 
      <h5 class="white" id="community">Community</h5> 
      <ul class="list-unstyled white" role="menu"> 
       <li><a href="http://community.apache.org/">Overview</a></li> 
       <li><a href="https://www.apache.org/foundation/conferences.html">Conferences</a></li> 
       <li><a href="http://community.apache.org/gsoc.html">Summer of Code</a></li> 
       <li><a href="http://community.apache.org/newcomers/">Getting Started</a></li> 
       <li><a href="https://www.apache.org/foundation/how-it-works.html">The Apache Way</a></li> 
       <li><a href="https://www.apache.org/travel/">Travel Assistance</a></li> 
       <li><a href="https://www.apache.org/foundation/getinvolved.html">Get Involved</a></li> 
       <li><a href="https://www.apache.org/foundation/policies/conduct.html">Code of Conduct</a></li> 
       <li><a href="http://community.apache.org/newbiefaq.html">Community FAQ</a></li> 
       <li><a href="https://www.apache.org/memorials/">Memorials</a></li> 
      </ul> 
     </div> 
     <div class="col-sm-2"> 
      <h5 class="white" id="innovation">Innovation</h5> 
      <ul class="list-unstyled white" role="menu"> 
       <li><a href="http://incubator.apache.org/">Incubator</a></li> 
       <li><a href="http://labs.apache.org/">Labs</a></li> 
       <li><a href="https://www.apache.org/licenses/">Licensing</a></li> 
       <li><a href="https://www.apache.org/foundation/license-faq.html">Licensing FAQ</a></li> 
       <li><a href="https://www.apache.org/foundation/marks/">Trademark Policy</a></li> 
       <li><a href="https://www.apache.org/foundation/contact.html">Contacts</a></li> 
      </ul> 
     </div> 
     <div class="col-sm-2"> 
      <h5 class="white" id="tech-operations">Tech Operations</h5> 
      <ul class="list-unstyled white" role="menu"> 
       <li><a href="https://www.apache.org/dev/">Developer Information</a></li> 
       <li><a href="https://www.apache.org/dev/infrastructure.html">Infrastructure</a></li> 
       <li><a href="https://www.apache.org/security/">Security</a></li> 
       <li><a href="http://status.apache.org">Status</a></li> 
       <li><a href="https://www.apache.org/foundation/contact.html">Contacts</a></li> 
      </ul> 
     </div> 
     <div class="col-sm-2"> 
      <h5 class="white" id="press">Press</h5> 
      <ul class="list-unstyled white" role="menu"> 
       <li><a href="https://www.apache.org/press/">Overview</a></li> 
       <li><a href="https://blogs.apache.org/">ASF News</a></li> 
       <li><a href="https://blogs.apache.org/foundation/">Announcements</a></li> 
       <li><a href="https://twitter.com/TheASF">Twitter Feed</a></li> 
       <li><a href="https://www.apache.org/press/#contact">Contacts</a></li> 
      </ul> 
     </div> 
     <div class="col-sm-2"> 
      <h5 class="white" id="legal">Legal</h5> 
      <ul class="list-unstyled white" role="menu"> 
       <li><a href="https://www.apache.org/legal/">Legal Affairs</a></li> 
       <li><a href="https://www.apache.org/legal/dmca.html">DMCA</a></li> 
       <li><a href="https://www.apache.org/licenses/">Licensing</a></li> 
       <li><a href="https://www.apache.org/foundation/marks/">Trademark Policy</a></li> 
       <li><a href="https://www.apache.org/foundation/records/">Public Records</a></li> 
       <li><a href="https://www.apache.org/foundation/policies/privacy.html">Privacy Policy</a></li> 
       <li><a href="https://www.apache.org/licenses/exports/">Export Information</a></li> 
       <li><a href="https://www.apache.org/foundation/license-faq.html">Licensing FAQ</a></li> 
       <li><a href="https://www.apache.org/foundation/contact.html">Contacts</a></li> 
      </ul> 
     </div> 
     <div class="col-sm-1"> 
     </div> 
    </div> 
    <hr class="col-lg-12 hr-white"> 
    <div class="row"> 
     <div class="col-lg-12"> 
      <p class="text-center">Copyright © 2021 The Apache Software Foundation, Licensed under the <a class="white" href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> 
      <p class="text-center">Apache and the Apache feather logo are trademarks of The Apache Software Foundation. </p> 
     </div> 
    </div> 
   </div> 
  </footer> 
  <!-- / Footer --> 
  <script src="/js/jquery-2.1.1.min.js"></script> 
  <script src="/js/bootstrap.js"></script> 
  <script src="/js/slideshow.js"></script> 
  <script>
    (function($){
    $(document).ready(function(){
    $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
    event.preventDefault();
    event.stopPropagation();
    $(this).parent().siblings().removeClass('open');
    $(this).parent().toggleClass('open');
    console.log('WOrked');
    });
    });
    })(jQuery);
  </script> 
 </section> 
</section>        </main>
        <div class="d-none d-sm-none d-md-none d-lg-none d-xl-block col-xl-2">
            <div id="m-toc-sidebar" class="d-print-none m-toc-sidebar-enabled m-toc-sidebar-expanded m-toc-sidebar-autoexpandable toc-sidebar-fixed">
                <nav id="m-toc-sidebar-nav flex-column">
                <ul class="m-nav--sidebar nav flex-column flex-nowrap">
    <li class="h2">
        <a class="nav-link" href="#overview1" title="Overview">Overview</a>
    </li>
        <li class="h2">
        <a class="nav-link" href="#project-licenses" title="Project Licenses">Project Licenses</a>
    </li>
    <ul class="nav flex-column flex-nowrap nav-collapsible">
            <li class="h3">
        <a class="nav-link" href="#the-apache-software-license-version-20" title="The Apache Software License, Version 2.0">The Apache Software License, Version 2.0</a>
    </li>
    </ul>
        <li class="h2">
        <a class="nav-link" href="#community-led-development-the-apache-way" title="Community-led development "The Apache Way"">Community-led development "The Apache Way"</a>
    </li>
    <ul class="nav flex-column flex-nowrap nav-collapsible">
            <li class="h3">
        <a class="nav-link" href="#apache-license-version-201" title="Apache License, Version 2.0¶">Apache License, Version 2.0¶</a>
    </li>
    </ul>
        <li class="h1">
        <a class="nav-link" href="#how-to-apply-the-apache-license-to-your-work" title="How to apply the Apache License to your work¶">How to apply the Apache License to your work¶</a>
    </li>
    <li class="h5">
        <a class="nav-link" href="#community" title="Community">Community</a>
    </li>
    <li class="h5">
        <a class="nav-link" href="#innovation" title="Innovation">Innovation</a>
    </li>
    <li class="h5">
        <a class="nav-link" href="#tech-operations" title="Tech Operations">Tech Operations</a>
    </li>
    <li class="h5">
        <a class="nav-link" href="#press" title="Press">Press</a>
    </li>
    <li class="h5">
        <a class="nav-link" href="#legal" title="Legal">Legal</a>
    </li>
                    </ul>
                </nav>
           </div>
        </div>
    </div> <!-- row: end -->
</div> <!-- .main-body: end -->
    <div id="m_scrolltop" class="m-scrolltop">
		<i class="fa fa-arrow-up"></i>
    </div>
  <!-- Footer -->
<footer class="footer-light bg-light">
    <div class="container">
        <div class="row">
                        <div class="col bottom-nav">
                <ul class="nav flex-column nav-list">
                    <li class="nav-header">
Parent Project
                    </li>
                    <li class="nav-item "><a  href="../index.html"  title="Openmeetings"  class="nav-link" >Openmeetings</a></li>
                </ul>
            </div>
            <div class="col bottom-nav">
                <ul class="nav flex-column nav-list">
                    <li class="nav-header">
Project
                    </li>
                    <li class="nav-item "><a  href="index.html"  title="About"  class="nav-link" >About</a></li>
                    <li class="nav-item "><a  href="project-info.html"  title="Info"  class="nav-link" >Info</a></li>
                    <li class="nav-item "><a  href="summary.html"  title="Summary"  class="nav-link" >Summary</a></li>
                    <li class="nav-item "><a  href="https://www.apache.org/licenses/"  title="License"   class="externalLink nav-link" >License</a></li>
                    <li class="nav-item "><a  href="dependencies.html"  title="Dependencies"  class="nav-link" >Dependencies</a></li>
                    <li class="nav-item "><a  href="dependency-convergence.html"  title="Dependency Convergence"  class="nav-link" >Dependency Convergence</a></li>
                    <li class="nav-item "><a  href="rat-report.html"  title="RAT Report"  class="nav-link" >RAT Report</a></li>
                    <li class="nav-item "><a  href="apidocs/index.html"  title="JavaDoc"  target="_blank"  class="nav-link" >JavaDoc</a></li>
                </ul>
            </div>
        </div> <!-- END: .row -->
    </div> <!-- END: .container -->
</footer>
  <div class="container subfooter text-center">
    <div class="row">
      <div class="col-md-12">
        <p class="copyright">Copyright &copy;2012-2021
                 <a href="https://apache.org">Apache Software Foundation</a>
. All Rights Reserved.</p>
      </div>
    </div>
  </div>

  <!-- Le javascript
  ================================================== -->
  <!-- Placed at the end of the document so the pages load faster -->
    <script src="../js/jquery.min.js" crossorigin="anonymous"></script>
    <script src="../js/popper.min.js" crossorigin="anonymous"></script>
    <script src="../js/bootstrap.min.js" crossorigin="anonymous"></script>

  <script src="../js/lightbox.min.js" crossorigin="anonymous"></script>
            	<script src="../js/highlight.min.js" crossorigin="anonymous"></script>
                    
<script src="../js/site.js" type="text/javascript"></script>        
<p class="text-center">Apache OpenMeetings, OpenMeetings, Apache, the Apache feather, and the Apache OpenMeetings project logo</p>        
<p class="text-center">are trademarks of the Apache Software Foundation.</p>  <script src="../js/reflow-skin.js" crossorigin="anonymous"></script>
    <script src="../js/anchor.min.js" crossorigin="anonymous"></script>
    </body>
</html>
