
<!DOCTYPE html>
<!--
 Generated by Apache Maven Doxia at 2017-03-29
 Rendered using Reflow Maven Skin 1.1.1 (http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html  xml:lang="en" lang="en">

	<head>
		<meta charset="UTF-8" />
		<title>Apache OpenMeetings Project - Rat (Release Audit Tool) results</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/bootstrap.min.css" rel="stylesheet" />
		<link href=".//css/bootstrap-responsive.min.css" rel="stylesheet" />
		<link href=".//css/docs.css" rel="stylesheet" />
		<link href=".//css/reflow-skin.css" rel="stylesheet" />


		<link href=".//css/lightbox.css" rel="stylesheet" />

		<link href=".//css/site.css" rel="stylesheet" />
		<link href=".//css/print.css" rel="stylesheet" media="print" />

		<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
		<!--[if lt IE 9]>
			<script src=".//js/html5.js"></script>
		<![endif]-->


		
	</head>

	<body class="page-rat-report project-openmeetings-server" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">

		<div class="navbar navbar-fixed-top">
			<div class="navbar-inner">
				<div class="container">
					<a class="btn btn-navbar" data-toggle="collapse" data-target="#top-nav-collapse">
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</a>
					<div class="brand"><span class="color-highlight">Apache</span> OpenMeetings</div>
					<div class="nav-collapse collapse" id="top-nav-collapse">
						<ul class="nav pull-right">
							<li ><a href="demo.html" title="Demo">Demo</a></li>
							<li ><a href="downloads.html" title="Download">Download</a></li>
							<li ><a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" title="Wiki" class="externalLink">Wiki</a></li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">General <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="index.html" title="Home">Home</a></li>
									<li ><a href="license.html" title="License">License</a></li>
									<li ><a href="http://www.apache.org/" title="ASF" class="externalLink">ASF</a></li>
									<li ><a href="CallForLogo.html" title="Call For Logo">Call For Logo</a></li>
									<li ><a href="NewsArchive.html" title="News archive">News archive</a></li>
									<li ><a href="security.html" title="Security">Security</a></li>
									<li ><a href="commercial-support.html" title="Commercial Support">Commercial Support</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Installation <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="installation.html" title="Installation">Installation</a></li>
									<li ><a href="Upgrade.html" title="Upgrade">Upgrade</a></li>
									<li ><a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools" title="Tutorials" class="externalLink">Tutorials</a></li>
									<li ><a href="CommandLineAdmin.html" title="Command Line Admin">Command Line Admin</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="get-involved.html" title="Get Involved">Get Involved</a></li>
									<li ><a href="team-list.html" title="Committers">Committers</a></li>
									<li ><a href="OurUsers.html" title="Our Users">Our Users</a></li>
									<li ><a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a></li>
									<li ><a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/" title="Wiki" class="externalLink">Wiki</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="source-repository.html" title="Source Code">Source Code</a></li>
									<li ><a href="issue-tracking.html" title="Bugs / Issues">Bugs / Issues</a></li>
									<li ><a href="dependencies.html" title="Dependencies">Dependencies</a></li>
									<li ><a href="integration.html" title="Continuous Integration">Continuous Integration</a></li>
									<li ><a href="BuildInstructions_3.0.x.html" title="Build Instructions 3.0.x">Build Instructions 3.0.x</a></li>
									<li ><a href="BuildInstructions.html" title="Build Instructions">Build Instructions</a></li>
									<li ><a href="JUnitTesting.html" title="JUnit Testing">JUnit Testing</a></li>
									<li ><a href="ManualTesting.html" title="Manual Testing">Manual Testing</a></li>
									<li ><a href="ReleaseGuide.html" title="Release Guide">Release Guide</a></li>
									<li ><a href="WebsiteGuide.html" title="Website Guide">Website Guide</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Configuration <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li class="dropdown-submenu ">
										<a href="rat-report.html#integration" title="Integration">Integration</a>
										<ul class="dropdown-menu">
											<li ><a href="openmeetings-webservice/apidocs/index.html" title="SOAP/REST API" target="_blank">SOAP/REST API</a></li>
											<li ><a href="RestAPISample.html" title="REST API Sample">REST API Sample</a></li>
											<li ><a href="LdapAndADS.html" title="Ldap and ADS">Ldap and ADS</a></li>
											<li ><a href="oauth2.html" title="OAuth2">OAuth2</a></li>
											<li ><a href="voip-sip-integration.html" title="VoIP and SIP">VoIP and SIP</a></li>
											<li ><a href="errorvalues.html" title="Errors table">Errors table</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#plugins" title="Plugins">Plugins</a>
										<ul class="dropdown-menu">
											<li ><a href="MoodlePlugin.html" title="Moodle Plugin">Moodle Plugin</a></li>
											<li ><a href="SakaiPlugin.html" title="Sakai Plugin">Sakai Plugin</a></li>
											<li ><a href="JiraPlugin.html" title="Jira Plugin">Jira Plugin</a></li>
											<li ><a href="JoomlaPlugin.html" title="Joomla Plugin">Joomla Plugin</a></li>
											<li ><a href="DrupalPlugin.html" title="Drupal Plugin">Drupal Plugin</a></li>
											<li ><a href="BitrixPlugin.html" title="Bitrix Plugin">Bitrix Plugin</a></li>
											<li ><a href="ConfluencePlugin.html" title="Confluence Plugin">Confluence Plugin</a></li>
											<li ><a href="SugarCRMPlugin.html" title="SugarCRM Plugin">SugarCRM Plugin</a></li>
											<li ><a href="RedminePlugin.html" title="Redmine Plugin">Redmine Plugin</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#db" title="DB Sample Configurations">DB Sample Configurations</a>
										<ul class="dropdown-menu">
											<li ><a href="ApacheDerbyConfig.html" title="Apache Derby">Apache Derby</a></li>
											<li ><a href="IBMDB2Config.html" title="IBM DB2">IBM DB2</a></li>
											<li ><a href="OracleConfig.html" title="Oracle">Oracle</a></li>
											<li ><a href="MySQLConfig.html" title="MySQL">MySQL</a></li>
											<li ><a href="PostgresConfig.html" title="Postgres">Postgres</a></li>
											<li ><a href="MSSQLConfig.html" title="MSSQL">MSSQL</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#localization" title="Localization and languages">Localization and languages</a>
										<ul class="dropdown-menu">
											<li ><a href="Internationalisation.html" title="Internationalisation">Internationalisation</a></li>
											<li ><a href="LanguageEditor.html" title="LanguageEditor">LanguageEditor</a></li>
											<li ><a href="TimeZoneHandling.html" title="TimeZoneHandling">TimeZoneHandling</a></li>
											<li ><a href="EditTemplates.html" title="EditTemplates">EditTemplates</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#port" title="NAT Port Settings">NAT Port Settings</a>
										<ul class="dropdown-menu">
											<li ><a href="PortSettings.html" title="Port settings">Port settings</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#performance" title="Performance">Performance</a>
										<ul class="dropdown-menu">
											<li ><a href="JVMPerformanceTuning.html" title="JVM performance tuning">JVM performance tuning</a></li>
											<li ><a href="NetworkCalculator.html" title="Network bandwidth calculator">Network bandwidth calculator</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#interface" title="User Interface">User Interface</a>
										<ul class="dropdown-menu">
											<li ><a href="themes-and-branding.html" title="Themes">Themes</a></li>
											<li ><a href="Dashboard.html" title="Dashboard">Dashboard</a></li>
											<li ><a href="WebcamResolutions.html" title="Webcam resolutions">Webcam resolutions</a></li>
											<li ><a href="ConferenceRoomLayoutOptions.html" title="Room layout options">Room layout options</a></li>
											<li ><a href="HotKeys.html" title="Hot Keys">Hot Keys</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#customize" title="Customization">Customization</a>
										<ul class="dropdown-menu">
											<li ><a href="WebappNamePath.html" title="Webapp name/path">Webapp name/path</a></li>
											<li ><a href="Navigation.html" title="Navigation">Navigation</a></li>
											<li ><a href="CalendarAndTimezone.html" title="Calendar and timezone">Calendar and timezone</a></li>
											<li ><a href="CustomRoomTypeHowTo.html" title="Custom room type">Custom room type</a></li>
											<li ><a href="CustomCryptMechanism.html" title="Custom crypt mechanism">Custom crypt mechanism</a></li>
											<li ><a href="GeneralConfiguration.html" title="General Configuration">General Configuration</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#security" title="Security">Security</a>
										<ul class="dropdown-menu">
											<li ><a href="RestrictedAccess.html" title="Restricted Access">Restricted Access</a></li>
											<li ><a href="RTMPSAndHTTPS.html" title="RTMPS and HTTPS">RTMPS and HTTPS</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#convert" title="Converters">Converters</a>
										<ul class="dropdown-menu">
											<li ><a href="OpenOfficeConverter.html" title="OpenOffice Converter">OpenOffice Converter</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#cluster" title="Clustering">Clustering</a>
										<ul class="dropdown-menu">
											<li ><a href="Clustering.html" title="Clustering">Clustering</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#misc" title="Misc">Misc</a>
										<ul class="dropdown-menu">
											<li ><a href="GetVersionInfo.html" title="Get version info">Get version info</a></li>
										</ul>
									</li>
								</ul>
							</li>
						</ul>
					</div><!--/.nav-collapse -->
				</div>
			</div>
		</div>

	<div class="container">

	<!-- Masthead
	================================================== -->

	<header>
	<div class="jumbotron subhead">
		<div class="row" id="banner">
			<div class="span12">
				<div class="pull-left">
					<a href="index.html" id="bannerLeft"><img src="images/logo.png" alt='"'Apache OpenMeetings'"' /></a>
				</div>
				<div class="pull-right">
					<a href="http://apache.org" id="bannerRight"><img src="http://apache.org/img/asf_logo.png" alt='"'Apache'"' /></a>
				</div>
			</div>
		</div>
	</div>
		<div>
			<ul class="breadcrumb">
				<li class="publishDate version-date">Last Published: 2017-03-17</li>
			</ul>
		</div>
	</header>

	<div class="main-body">
	<div class="row">
		<div class="span8">
			<div class="body-content">
<div class="section"> 
 <div class="page-header">
  <h2 id="Rat_Release_Audit_Tool_results">Rat (Release Audit Tool) results</h2>
 </div> 
 <p>The following document contains the results of <a class="externalLink" href="http://creadur.apache.org/rat/apache-rat-plugin/">Rat (Release Audit Tool)</a>.</p> 
 <p></p> 
 <div class="source"> 
  <pre>
*****************************************************
Summary
-------
Generated at: 2017-03-17T12:35:38+07:00

Notes: 0
Binaries: 72
Archives: 0
Standards: 95

Apache Licensed: 92
Generated Documents: 0

JavaDocs are generated, thus a license header is optional.
Generated files do not require license headers.

3 Unknown Licenses

*****************************************************

Files with unapproved licenses:

  /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/css/jquery-ui.css
  /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/js/html5.js
  /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/js/jquery-ui.min.js

*****************************************************

*****************************************************
  Files with Apache License headers will be marked AL
  Binary files (which do not require any license headers) will be marked B
  Compressed archives will be marked A
  Notices, licenses etc. will be marked N
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/pom.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/stylesheets/errortable.xsl
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/cut_administration_configuration.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/monitor_add.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/chat.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/checkout_7.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/backup.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/checkout_3.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/desktopsharing.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/installation_instructions.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/calendar.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/cluster1.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/checkout_5.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logo.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/eclipse-import-maven-project.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/system_backup.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/Arguments.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/drupal_module_configuration.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/CalendarDialog_2.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/ldap_screen.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/checkout_2.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/cut_conference_room.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/checkout_1.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/checkout_6.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/checkout_8.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/cut_integration_api.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/SugarCRM_Installation.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/user_add.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/recordings_timeleine.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/audio_and_video.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/drupal_room_configuration.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/cluster2.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/pollresult.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/cut_file_explorer.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/dashboard.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/privat_messages.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/pencil_add.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/cut_recordings_playback.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/file_smal.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/mouse_add.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/moodle_add_activity_plugin.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/apache_feather.gif
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/NewConfiguration.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/choose_divice.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/cut_private_messages.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/Features_Screen_Conference_Room_Thumb.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/moodle_configure_plugin.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/cut_integrated_calendar.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/micro_small.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/moodle_install_plugin.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/checkout_9.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/langeditor_screen_v2.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/drupal_module_installation.png
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logo.svg
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/vote.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/DebugConfigurations.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/right_management.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/whiteboard.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/CalendarDialog_1.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/poll.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/checkout_4.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logos/logo_om_small6.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logos/logo_om_small5.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logos/logo_om_small4.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logos/logo_om1.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logos/pb.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logos/logo_om_big6.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logos/logo_om_small9.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logos/logo_om_big5.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logos/logo_om_small7.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logos/logo_om_big3.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logos/logo_om_small8.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logos/logo_om_small2.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logos/logo_om_small3.png
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logos/pb.svg
  B     /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/images/logos/logo_om_big4.png
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/css/netcalc.css
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/css/bootstrap-responsive.min.css
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/css/bootstrap.min.css
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/css/site.css
 !????? /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/css/jquery-ui.css
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/js/netcalc.js
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/js/bootstrap.min.js
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/js/site.js
 !????? /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/js/html5.js
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/js/jquery.min.js
 !????? /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/js/jquery-ui.min.js
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/RestAPISample.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/LanguageEditor.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/PostgresConfig.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/red5sip-integration_3.1.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/GetVersionInfo.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/JoomlaPlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/voip-sip-integration.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/Navigation.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/BuildInstructions_3.0.x.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/security.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/SugarCRMPlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/BitrixPlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/demo.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/MSSQLConfig.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/CommandLineAdmin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/BuildInstructions.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/OpenOfficeConverter.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/EditTemplates.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/ConfluencePlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/CustomCryptMechanism.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/Dashboard.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/ReleaseGuide.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/OracleConfig.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/downloads.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/LdapAndADS.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/MoodlePlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/Clustering.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/WebcamResolutions.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/RecommendedHardwareList.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/commercial-support.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/installation.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/red5sip-integration_3.0.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/CalendarAndTimezone.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/WebsiteGuide.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/RTMPSAndHTTPS.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/ConferenceRoomLayoutOptions.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/Internationalisation.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/JUnitTesting.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/NewsArchive.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/PortSettings.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/RedminePlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/CallForLogo.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/red5sip-integration_2.1.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/CalDAVandGCal.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/ManualTesting.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/HotKeys.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/documentation.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/RestrictedAccess.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/DrupalPlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/ApacheDerbyConfig.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/IBMDB2Config.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/NetworkCalculator.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/oauth2.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/themes-and-branding.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/SakaiPlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/Upgrade.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/JVMPerformanceTuning.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/index.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/MySQLConfig.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/WebappNamePath.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/CustomRoomTypeHowTo.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/get-involved.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/JiraPlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/red5sip-integration_2.0.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/GeneralConfiguration.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/xdoc/TimeZoneHandling.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/site.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/main/assembly/jrebel/red5-debug.bat
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/main/assembly/jrebel/red5-debug.sh
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/main/assembly/scripts/network_test.sh
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/main/assembly/scripts/admin.sh
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/main/assembly/scripts/admin.bat
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/main/assembly/components/all.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/main/assembly/components/templates.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/main/assembly/server.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/main/assembly/quick.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/main/assembly/conf/jee-container.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/main/assembly/root/index.html
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/main/assembly/src.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/main/assembly/unpacked.xml
 
*****************************************************

 Printing headers for text files without a valid license header...
 
=====================================================
== File: /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/css/jquery-ui.css
=====================================================
/*! jQuery UI - v1.12.1 - 2016-11-29
* http://jqueryui.com
* Includes: core.css, slider.css, theme.css
* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&amp;folderName=base&amp;cornerRadiusShadow=8px&amp;offsetLeftShadow=0px&amp;offsetTopShadow=0px&amp;thicknessShadow=5px&amp;opacityShadow=30&amp;bgImgOpacityShadow=0&amp;bgTextureShadow=flat&amp;bgColorShadow=666666&amp;opacityOverlay=30&amp;bgImgOpacityOverlay=0&amp;bgTextureOverlay=flat&amp;bgColorOverlay=aaaaaa&amp;iconColorError=cc0000&amp;fcError=5f3f3f&amp;borderColorError=f1a899&amp;bgTextureError=flat&amp;bgColorError=fddfdf&amp;iconColorHighlight=777620&amp;fcHighlight=777620&amp;borderColorHighlight=dad55e&amp;bgTextureHighlight=flat&amp;bgColorHighlight=fffa90&amp;iconColorActive=ffffff&amp;fcActive=ffffff&amp;borderColorActive=003eff&amp;bgTextureActive=flat&amp;bgColorActive=007fff&amp;iconColorHover=555555&amp;fcHover=2b2b2b&amp;borderColorHover=cccccc&amp;bgTextureHover=flat&amp;bgColorHover=ededed&amp;iconColorDefault=777777&amp;fcDefault=454545&amp;borderColorDefault=c5c5c5&amp;bgTextureDefault=flat&amp;bgColorDefault=f6f6f6&amp;iconColorContent=444444&amp;fcContent=333333&amp;borderColorContent=dddddd&amp;bgTextureContent=flat&amp;bgColorContent=ffffff&amp;iconColorHeader=444444&amp;fcHeader=333333&amp;borderColorHeader=dddddd&amp;bgTextureHeader=flat&amp;bgColorHeader=e9e9e9&amp;cornerRadius=3px&amp;fwDefault=normal&amp;fsDefault=1em&amp;ffDefault=Arial%2CHelvetica%2Csans-serif
* Copyright jQuery Foundation and other contributors; Licensed MIT */

/* Layout helpers
----------------------------------*/
.ui-helper-hidden {
	display: none;
}
.ui-helper-hidden-accessible {
	border: 0;
	clip: rect(0 0 0 0);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
}
.ui-helper-reset {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	line-height: 1.3;
	text-decoration: none;
	font-size: 100%;
	list-style: none;
}
.ui-helper-clearfix:before,
.ui-helper-clearfix:after {
	content: &quot;&quot;;
	display: table;
	border-collapse: collapse;
}
.ui-helper-clearfix:after {
	clear: both;
}
.ui-helper-zfix {
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	position: absolute;
	opacity: 0;
	filter:Alpha(Opacity=0); /* support: IE8 */
}


=====================================================
== File: /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/js/html5.js
=====================================================
/**
* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
!function(a,b){function c(a,b){var c=a.createElement(&quot;p&quot;),d=a.getElementsByTagName(&quot;head&quot;)[0]||a.documentElement;return c.innerHTML=&quot;x&lt;style&gt;&quot;+b+&quot;&lt;/style&gt;&quot;,d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return&quot;string&quot;==typeof a?a.split(&quot; &quot;):a}function e(a,b){var c=t.elements;&quot;string&quot;!=typeof c&amp;&amp;(c=c.join(&quot; &quot;)),&quot;string&quot;!=typeof a&amp;&amp;(a=a.join(&quot; &quot;)),t.elements=c+&quot; &quot;+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i&gt;g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function(&quot;h,f&quot;,&quot;return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&amp;&amp;(&quot;+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c(&quot;'+a+'&quot;)'})+&quot;);return n}&quot;)(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,&quot;article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}&quot;)),l||i(a,d),a}var k,l,m=&quot;3.7.3&quot;,n=a.html5||{},o=/^&lt;|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q=&quot;_html5shiv&quot;,r=0,s={};!function(){try{var a=b.createElement(&quot;a&quot;);a.innerHTML=&quot;&lt;xyz&gt;&lt;/xyz&gt;&quot;,k=&quot;hidden&quot;in a,l=1==a.childNodes.length||function(){b.createElement(&quot;a&quot;);var a=b.createDocumentFragment();return&quot;undefined&quot;==typeof a.cloneNode||&quot;undefined&quot;==typeof a.createDocumentFragment||&quot;undefined&quot;==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||&quot;abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video&quot;,version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:&quot;default&quot;,shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),&quot;object&quot;==typeof module&amp;&amp;module.exports&amp;&amp;(module.exports=t)}(&quot;undefined&quot;!=typeof window?window:this,document);

=====================================================
== File: /home/solomax/work/openmeetings/application/tags/3.2.1RC3/openmeetings-server/src/site/resources/js/jquery-ui.min.js
=====================================================
/*! jQuery UI - v1.12.1 - 2016-11-29
* http://jqueryui.com
* Includes: widget.js, keycode.js, widgets/mouse.js, widgets/slider.js
* Copyright jQuery Foundation and other contributors; Licensed MIT */

(function(t){&quot;function&quot;==typeof define&amp;&amp;define.amd?define([&quot;jquery&quot;],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version=&quot;1.12.1&quot;;var e=0,i=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,&quot;events&quot;),s&amp;&amp;s.remove&amp;&amp;t(n).triggerHandler(&quot;remove&quot;)}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},l=e.split(&quot;.&quot;)[0];e=e.split(&quot;.&quot;)[1];var h=l+&quot;-&quot;+e;return s||(s=i,i=t.Widget),t.isArray(s)&amp;&amp;(s=t.extend.apply(null,[{}].concat(s))),t.expr[&quot;:&quot;][h.toLowerCase()]=function(e){return!!t.data(e,h)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){return this._createWidget?(arguments.length&amp;&amp;this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:l,widgetName:e,widgetFullName:h}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+&quot;.&quot;+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var s,n,o=i.call(arguments,1),a=0,r=o.length;r&gt;a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&amp;&amp;void 0!==n&amp;&amp;(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a=&quot;string&quot;==typeof o,r=i.call(arguments,1),l=this;return a?this.length||&quot;instance&quot;!==o?this.each(function(){var i,s=t.data(this,n);return&quot;instance&quot;===o?(l=s,!1):s?t.isFunction(s[o])&amp;&amp;&quot;_&quot;!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&amp;&amp;void 0!==i?(l=i&amp;&amp;i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error(&quot;no such method '&quot;+o+&quot;' for &quot;+e+&quot; widget instance&quot;):t.error(&quot;cannot call methods on &quot;+e+&quot; prior to initialization; &quot;+&quot;attempted to call method '&quot;+o+&quot;'&quot;)}):l=void 0:(r.length&amp;&amp;(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&amp;&amp;e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:&quot;widget&quot;,widgetEventPrefix:&quot;&quot;,defaultElement:&quot;&lt;div&gt;&quot;,options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace=&quot;.&quot;+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&amp;&amp;(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&amp;&amp;this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&amp;&amp;this._setOptionDisabled(this.options.disabled),this._trigger(&quot;create&quot;,null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr(&quot;aria-disabled&quot;),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if(&quot;string&quot;==typeof e)if(a={},s=e.split(&quot;.&quot;),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1&gt;o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return&quot;classes&quot;===t&amp;&amp;this._setOptionClasses(e),this.options[t]=e,&quot;disabled&quot;===t&amp;&amp;this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&amp;&amp;n&amp;&amp;n.length&amp;&amp;(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+&quot;-disabled&quot;,null,!!t),t&amp;&amp;(this._removeClass(this.hoverable,null,&quot;ui-state-hover&quot;),this._removeClass(this.focusable,null,&quot;ui-state-focus&quot;))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length&gt;r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&amp;&amp;e.classes[i[r]]&amp;&amp;s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:&quot;_untrackClassesElement&quot;}),e.keys&amp;&amp;i(e.keys.match(/\S+/g)||[],!0),e.extra&amp;&amp;i(e.extra.match(/\S+/g)||[]),s.join(&quot; &quot;)},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&amp;&amp;(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s=&quot;boolean&quot;==typeof s?s:i;var n=&quot;string&quot;==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;&quot;boolean&quot;!=typeof e&amp;&amp;(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&amp;&amp;!t(this).hasClass(&quot;ui-state-disabled&quot;)?(&quot;string&quot;==typeof a?o[a]:a).apply(o,arguments):void 0}&quot;string&quot;!=typeof a&amp;&amp;(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||&quot;&quot;).split(&quot; &quot;).join(this.eventNamespace+&quot; &quot;)+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return(&quot;string&quot;==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,&quot;ui-state-hover&quot;)},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,&quot;ui-state-hover&quot;)}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,&quot;ui-state-focus&quot;)},focusout:function(e){this._removeClass(t(e.currentTarget),null,&quot;ui-state-focus&quot;)}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&amp;&amp;a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:&quot;fadeIn&quot;,hide:&quot;fadeOut&quot;},function(e,i){t.Widget.prototype[&quot;_&quot;+e]=function(s,n,o){&quot;string&quot;==typeof n&amp;&amp;(n={effect:n});var a,r=n?n===!0||&quot;number&quot;==typeof n?i:n.effect||i:e;n=n||{},&quot;number&quot;==typeof n&amp;&amp;(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&amp;&amp;s.delay(n.delay),a&amp;&amp;t.effects&amp;&amp;t.effects.effect[r]?s[e](n):r!==e&amp;&amp;s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&amp;&amp;o.call(s[0]),i()})}}),t.widget,t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var s=!1;t(document).on(&quot;mouseup&quot;,function(){s=!1}),t.widget(&quot;ui.mouse&quot;,{version:&quot;1.12.1&quot;,options:{cancel:&quot;input, textarea, button, select, option&quot;,distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on(&quot;mousedown.&quot;+this.widgetName,function(t){return e._mouseDown(t)}).on(&quot;click.&quot;+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+&quot;.preventClickEvent&quot;)?(t.removeData(i.target,e.widgetName+&quot;.preventClickEvent&quot;),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off(&quot;.&quot;+this.widgetName),this._mouseMoveDelegate&amp;&amp;this.document.off(&quot;mousemove.&quot;+this.widgetName,this._mouseMoveDelegate).off(&quot;mouseup.&quot;+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!s){this._mouseMoved=!1,this._mouseStarted&amp;&amp;this._mouseUp(e),this._mouseDownEvent=e;var i=this,n=1===e.which,o=&quot;string&quot;==typeof this.options.cancel&amp;&amp;e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return n&amp;&amp;!o&amp;&amp;this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&amp;&amp;this._mouseDelayMet(e)&amp;&amp;(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+&quot;.preventClickEvent&quot;)&amp;&amp;t.removeData(e.target,this.widgetName+&quot;.preventClickEvent&quot;),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on(&quot;mousemove.&quot;+this.widgetName,this._mouseMoveDelegate).on(&quot;mouseup.&quot;+this.widgetName,this._mouseUpDelegate),e.preventDefault(),s=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&amp;&amp;(!document.documentMode||9&gt;document.documentMode)&amp;&amp;!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&amp;&amp;(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&amp;&amp;this._mouseDelayMet(e)&amp;&amp;(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off(&quot;mousemove.&quot;+this.widgetName,this._mouseMoveDelegate).off(&quot;mouseup.&quot;+this.widgetName,this._mouseUpDelegate),this._mouseStarted&amp;&amp;(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&amp;&amp;t.data(e.target,this.widgetName+&quot;.preventClickEvent&quot;,!0),this._mouseStop(e)),this._mouseDelayTimer&amp;&amp;(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,s=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))&gt;=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.widget(&quot;ui.slider&quot;,t.ui.mouse,{version:&quot;1.12.1&quot;,widgetEventPrefix:&quot;slide&quot;,options:{animate:!1,classes:{&quot;ui-slider&quot;:&quot;ui-corner-all&quot;,&quot;ui-slider-handle&quot;:&quot;ui-corner-all&quot;,&quot;ui-slider-range&quot;:&quot;ui-corner-all ui-widget-header&quot;},distance:0,max:100,min:0,orientation:&quot;horizontal&quot;,range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass(&quot;ui-slider ui-slider-&quot;+this.orientation,&quot;ui-widget ui-widget-content&quot;),this._refresh(),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,i,s=this.options,n=this.element.find(&quot;.ui-slider-handle&quot;),o=&quot;&lt;span tabindex='0'&gt;&lt;/span&gt;&quot;,a=[];for(i=s.values&amp;&amp;s.values.length||1,n.length&gt;i&amp;&amp;(n.slice(i).remove(),n=n.slice(0,i)),e=n.length;i&gt;e;e++)a.push(o);this.handles=n.add(t(a.join(&quot;&quot;)).appendTo(this.element)),this._addClass(this.handles,&quot;ui-slider-handle&quot;,&quot;ui-state-default&quot;),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data(&quot;ui-slider-handle-index&quot;,e).attr(&quot;tabIndex&quot;,0)})},_createRange:function(){var e=this.options;e.range?(e.range===!0&amp;&amp;(e.values?e.values.length&amp;&amp;2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&amp;&amp;(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&amp;&amp;this.range.length?(this._removeClass(this.range,&quot;ui-slider-range-min ui-slider-range-max&quot;),this.range.css({left:&quot;&quot;,bottom:&quot;&quot;})):(this.range=t(&quot;&lt;div&gt;&quot;).appendTo(this.element),this._addClass(this.range,&quot;ui-slider-range&quot;)),(&quot;min&quot;===e.range||&quot;max&quot;===e.range)&amp;&amp;this._addClass(this.range,&quot;ui-slider-range-&quot;+e.range)):(this.range&amp;&amp;this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&amp;&amp;this.range.remove(),this._mouseDestroy()},_mouseCapture:function(e){var i,s,n,o,a,r,l,h,c=this,u=this.options;return u.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:e.pageX,y:e.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var i=Math.abs(s-c.values(e));(n&gt;i||n===i&amp;&amp;(e===c._lastChangedValue||c.values(e)===u.min))&amp;&amp;(n=i,o=t(this),a=e)}),r=this._start(e,a),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=a,this._addClass(o,null,&quot;ui-state-active&quot;),o.trigger(&quot;focus&quot;),l=o.offset(),h=!t(e.target).parents().addBack().is(&quot;.ui-slider-handle&quot;),this._clickOffset=h?{left:0,top:0}:{left:e.pageX-l.left-o.width()/2,top:e.pageY-l.top-o.height()/2-(parseInt(o.css(&quot;borderTopWidth&quot;),10)||0)-(parseInt(o.css(&quot;borderBottomWidth&quot;),10)||0)+(parseInt(o.css(&quot;marginTop&quot;),10)||0)},this.handles.hasClass(&quot;ui-state-hover&quot;)||this._slide(e,a,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this._removeClass(this.handles,null,&quot;ui-state-active&quot;),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=&quot;vertical&quot;===this.options.orientation?&quot;vertical&quot;:&quot;horizontal&quot;},_normValueFromMouse:function(t){var e,i,s,n,o;return&quot;horizontal&quot;===this.orientation?(e=this.elementSize.width,i=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,i=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/e,s&gt;1&amp;&amp;(s=1),0&gt;s&amp;&amp;(s=0),&quot;vertical&quot;===this.orientation&amp;&amp;(s=1-s),n=this._valueMax()-this._valueMin(),o=this._valueMin()+s*n,this._trimAlignValue(o)},_uiHash:function(t,e,i){var s={handle:this.handles[t],handleIndex:t,value:void 0!==e?e:this.value()};return this._hasMultipleValues()&amp;&amp;(s.value=void 0!==e?e:this.values(t),s.values=i||this.values()),s},_hasMultipleValues:function(){return this.options.values&amp;&amp;this.options.values.length},_start:function(t,e){return this._trigger(&quot;start&quot;,t,this._uiHash(e))},_slide:function(t,e,i){var s,n,o=this.value(),a=this.values();this._hasMultipleValues()&amp;&amp;(n=this.values(e?0:1),o=this.values(e),2===this.options.values.length&amp;&amp;this.options.range===!0&amp;&amp;(i=0===e?Math.min(n,i):Math.max(n,i)),a[e]=i),i!==o&amp;&amp;(s=this._trigger(&quot;slide&quot;,t,this._uiHash(e,i,a)),s!==!1&amp;&amp;(this._hasMultipleValues()?this.values(e,i):this.value(i)))},_stop:function(t,e){this._trigger(&quot;stop&quot;,t,this._uiHash(e))},_change:function(t,e){this._keySliding||this._mouseSliding||(this._lastChangedValue=e,this._trigger(&quot;change&quot;,t,this._uiHash(e)))},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(e,i){var s,n,o;if(arguments.length&gt;1)return this.options.values[e]=this._trimAlignValue(i),this._refreshValue(),this._change(null,e),void 0;if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this._hasMultipleValues()?this._values(e):this.value();for(s=this.options.values,n=arguments[0],o=0;s.length&gt;o;o+=1)s[o]=this._trimAlignValue(n[o]),this._change(null,o);this._refreshValue()},_setOption:function(e,i){var s,n=0;switch(&quot;range&quot;===e&amp;&amp;this.options.range===!0&amp;&amp;(&quot;min&quot;===i?(this.options.value=this._values(0),this.options.values=null):&quot;max&quot;===i&amp;&amp;(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&amp;&amp;(n=this.options.values.length),this._super(e,i),e){case&quot;orientation&quot;:this._detectOrientation(),this._removeClass(&quot;ui-slider-horizontal ui-slider-vertical&quot;)._addClass(&quot;ui-slider-&quot;+this.orientation),this._refreshValue(),this.options.range&amp;&amp;this._refreshRange(i),this.handles.css(&quot;horizontal&quot;===i?&quot;bottom&quot;:&quot;left&quot;,&quot;&quot;);break;case&quot;value&quot;:this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case&quot;values&quot;:for(this._animateOff=!0,this._refreshValue(),s=n-1;s&gt;=0;s--)this._change(null,s);this._animateOff=!1;break;case&quot;step&quot;:case&quot;min&quot;:case&quot;max&quot;:this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case&quot;range&quot;:this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(t){this._super(t),this._toggleClass(null,&quot;ui-state-disabled&quot;,!!t)},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this._hasMultipleValues()){for(i=this.options.values.slice(),s=0;i.length&gt;s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()&gt;=t)return this._valueMin();if(t&gt;=this._valueMax())return this._valueMax();var e=this.options.step&gt;0?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)&gt;=e&amp;&amp;(s+=i&gt;0?e:-e),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),i=this.options.step,s=Math.round((t-e)/i)*i;t=s+e,t&gt;this.options.max&amp;&amp;(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&amp;&amp;(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=&quot;&quot;+t,i=e.indexOf(&quot;.&quot;);return-1===i?0:e.length-i-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){&quot;vertical&quot;===t&amp;&amp;this.range.css({width:&quot;&quot;,left:&quot;&quot;}),&quot;horizontal&quot;===t&amp;&amp;this.range.css({height:&quot;&quot;,bottom:&quot;&quot;})},_refreshValue:function(){var e,i,s,n,o,a=this.options.range,r=this.options,l=this,h=this._animateOff?!1:r.animate,c={};this._hasMultipleValues()?this.handles.each(function(s){i=100*((l.values(s)-l._valueMin())/(l._valueMax()-l._valueMin())),c[&quot;horizontal&quot;===l.orientation?&quot;left&quot;:&quot;bottom&quot;]=i+&quot;%&quot;,t(this).stop(1,1)[h?&quot;animate&quot;:&quot;css&quot;](c,r.animate),l.options.range===!0&amp;&amp;(&quot;horizontal&quot;===l.orientation?(0===s&amp;&amp;l.range.stop(1,1)[h?&quot;animate&quot;:&quot;css&quot;]({left:i+&quot;%&quot;},r.animate),1===s&amp;&amp;l.range[h?&quot;animate&quot;:&quot;css&quot;]({width:i-e+&quot;%&quot;},{queue:!1,duration:r.animate})):(0===s&amp;&amp;l.range.stop(1,1)[h?&quot;animate&quot;:&quot;css&quot;]({bottom:i+&quot;%&quot;},r.animate),1===s&amp;&amp;l.range[h?&quot;animate&quot;:&quot;css&quot;]({height:i-e+&quot;%&quot;},{queue:!1,duration:r.animate}))),e=i}):(s=this.value(),n=this._valueMin(),o=this._valueMax(),i=o!==n?100*((s-n)/(o-n)):0,c[&quot;horizontal&quot;===this.orientation?&quot;left&quot;:&quot;bottom&quot;]=i+&quot;%&quot;,this.handle.stop(1,1)[h?&quot;animate&quot;:&quot;css&quot;](c,r.animate),&quot;min&quot;===a&amp;&amp;&quot;horizontal&quot;===this.orientation&amp;&amp;this.range.stop(1,1)[h?&quot;animate&quot;:&quot;css&quot;]({width:i+&quot;%&quot;},r.animate),&quot;max&quot;===a&amp;&amp;&quot;horizontal&quot;===this.orientation&amp;&amp;this.range.stop(1,1)[h?&quot;animate&quot;:&quot;css&quot;]({width:100-i+&quot;%&quot;},r.animate),&quot;min&quot;===a&amp;&amp;&quot;vertical&quot;===this.orientation&amp;&amp;this.range.stop(1,1)[h?&quot;animate&quot;:&quot;css&quot;]({height:i+&quot;%&quot;},r.animate),&quot;max&quot;===a&amp;&amp;&quot;vertical&quot;===this.orientation&amp;&amp;this.range.stop(1,1)[h?&quot;animate&quot;:&quot;css&quot;]({height:100-i+&quot;%&quot;},r.animate))},_handleEvents:{keydown:function(e){var i,s,n,o,a=t(e.target).data(&quot;ui-slider-handle-index&quot;);switch(e.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(e.preventDefault(),!this._keySliding&amp;&amp;(this._keySliding=!0,this._addClass(t(e.target),null,&quot;ui-state-active&quot;),i=this._start(e,a),i===!1))return}switch(o=this.options.step,s=n=this._hasMultipleValues()?this.values(a):this.value(),e.keyCode){case t.ui.keyCode.HOME:n=this._valueMin();break;case t.ui.keyCode.END:n=this._valueMax();break;case t.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+o);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-o)}this._slide(e,a,n)},keyup:function(e){var i=t(e.target).data(&quot;ui-slider-handle-index&quot;);this._keySliding&amp;&amp;(this._keySliding=!1,this._stop(e,i),this._change(e,i),this._removeClass(t(e.target),null,&quot;ui-state-active&quot;))}}})});
</pre> 
 </div> 
</div>
			</div>
		</div>
		<div class="span4">
			<div id="toc-sidebar">
				<div class="well">
					<ul class="nav nav-list">
						<li class="nav-header">Table of Contents</li>
		<li><a href="#Rat_Release_Audit_Tool_results" title="Rat (Release Audit Tool) results">Rat (Release Audit Tool) results</a>
					</ul>
				</div>
			</div>
		</div>
	</div>
	</div>

	</div><!-- /container -->

	<!-- Footer
	================================================== -->
	<footer class="well">
		<div class="container">
			<div class="row">
				<div class="span3 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">General</li>
						<li >
							<a href="index.html" title="Home">Home</a>
						</li>
						<li >
							<a href="license.html" title="License">License</a>
						</li>
						<li >
							<a href="http://www.apache.org/" title="ASF" class="externalLink">ASF</a>
						</li>
						<li >
							<a href="CallForLogo.html" title="Call For Logo">Call For Logo</a>
						</li>
						<li >
							<a href="NewsArchive.html" title="News archive">News archive</a>
						</li>
						<li >
							<a href="security.html" title="Security">Security</a>
						</li>
						<li >
							<a href="commercial-support.html" title="Commercial Support">Commercial Support</a>
						</li>
					</ul>
				</div>
				<div class="span3 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">Installation</li>
						<li >
							<a href="installation.html" title="Installation">Installation</a>
						</li>
						<li >
							<a href="Upgrade.html" title="Upgrade">Upgrade</a>
						</li>
						<li >
							<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools" title="Tutorials" class="externalLink">Tutorials</a>
						</li>
						<li >
							<a href="CommandLineAdmin.html" title="Command Line Admin">Command Line Admin</a>
						</li>
					</ul>
				</div>
				<div class="span3 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">Community</li>
						<li >
							<a href="get-involved.html" title="Get Involved">Get Involved</a>
						</li>
						<li >
							<a href="team-list.html" title="Committers">Committers</a>
						</li>
						<li >
							<a href="OurUsers.html" title="Our Users">Our Users</a>
						</li>
						<li >
							<a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
						</li>
						<li >
							<a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/" title="Wiki" class="externalLink">Wiki</a>
						</li>
					</ul>
				</div>
				<div class="span3 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">Development</li>
						<li >
							<a href="source-repository.html" title="Source Code">Source Code</a>
						</li>
						<li >
							<a href="issue-tracking.html" title="Bugs / Issues">Bugs / Issues</a>
						</li>
						<li >
							<a href="dependencies.html" title="Dependencies">Dependencies</a>
						</li>
						<li >
							<a href="integration.html" title="Continuous Integration">Continuous Integration</a>
						</li>
						<li >
							<a href="BuildInstructions_3.0.x.html" title="Build Instructions 3.0.x">Build Instructions 3.0.x</a>
						</li>
						<li >
							<a href="BuildInstructions.html" title="Build Instructions">Build Instructions</a>
						</li>
						<li >
							<a href="JUnitTesting.html" title="JUnit Testing">JUnit Testing</a>
						</li>
						<li >
							<a href="ManualTesting.html" title="Manual Testing">Manual Testing</a>
						</li>
						<li >
							<a href="ReleaseGuide.html" title="Release Guide">Release Guide</a>
						</li>
						<li >
							<a href="WebsiteGuide.html" title="Website Guide">Website Guide</a>
						</li>
					</ul>
				</div>
			</div>
		</div>
	</footer>

	<div class="container subfooter">
		<div class="row">
			<div class="span12">
				<p class="pull-right"><a href="#">Back to top</a></p>
				<p class="copyright">Copyright &copy;2012-2017 <a href="http://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"></script>

	<script src=".//js/bootstrap.min.js"></script>
	<script src=".//js/lightbox.min.js"></script>
	<script src=".//js/reflow-scroll.js"></script>
	
<script src=".//js/jquery-ui.min.js" type="text/javascript"></script>
<script src=".//js/netcalc.js" type="text/javascript"></script>
	<script src=".//js/reflow-skin.js"></script>

	</body>
</html>
